ECALReadoutSimStandardAlg.h
Go to the documentation of this file.
1 //
2 // ECALReadoutSimStandardAlg.h
3 //
4 // Created by Eldwan Brianne on 8/27/18.
5 //
6 
7 #ifndef GAR_READOUTSIM_ECALReadoutSimStandardAlg_h
8 #define GAR_READOUTSIM_ECALReadoutSimStandardAlg_h
9 
11 
12 #include "RecoAlg/SiPMUtils.h"
13 
14 #include <unordered_map>
15 
16 namespace fhicl{
17  class ParameterSet;
18 }
19 
20 namespace gar{
21  namespace rosim{
22 
24 
25  public:
26 
27  ECALReadoutSimStandardAlg(CLHEP::HepRandomEngine& engine, fhicl::ParameterSet const& pset);
28 
29  virtual ~ECALReadoutSimStandardAlg();
30 
31  void reconfigure(fhicl::ParameterSet const& pset);
32 
33  void ClearLists();
34 
35  void PrepareAlgo(const std::vector< art::Ptr<sdp::CaloDeposit> > &hitVector);
36 
37  void DoDigitization();
38 
39  std::vector< raw::CaloRawDigit* > GetDigitizedHits() const { return m_DigitHitVec; }
40 
41  protected:
42 
43  float DoPhotonStatistics(float x, float y, float z, float energy) const;
44 
45  float DoTimeSmearing(float time) const;
46 
47  float AddElectronicNoise(float energy) const;
48 
49  raw::CaloRawDigit* DoTileDigitization(float x, float y, float z, float energy, float time, raw::CellID_t cID) const;
50 
51  raw::CaloRawDigit* DoStripDigitization(float x, float y, float z, float energy, float time, raw::CellID_t cID) const;
52 
53  std::pair< std::array<double, 3>, bool > CalculatePosition(float x, float y, float z, raw::CellID_t cID) const;
54 
55  std::pair<float, float> DoLightPropagation(float x, float y, float z, float time, raw::CellID_t cID) const;
56 
57  private:
58 
59  std::unique_ptr<util::SiPMUtils> fSiPMUtils; ///<used for the SiPM saturation
60 
61  std::vector<const sdp::CaloDeposit*> m_SimCaloHitVec; ///<used to store the simulated hits
62 
63  std::vector< raw::CaloRawDigit* > m_DigitHitVec; ///<vector of digitized hits
64 
65  TGeoManager* fGeoManager;
66  };
67 
68  }
69 }
70 
71 #endif /* GAR_READOUTSIM_TPCReadoutSimStandardAlg_h */
struct vector vector
std::vector< raw::CaloRawDigit * > GetDigitizedHits() const
virtual void reconfigure(fhicl::ParameterSet const &pset)
Interface to SiPMReadoutSimAlg class for SiPM specific.
long long int CellID_t
Definition: CaloRawDigit.h:24
General GArSoft Utilities.
std::vector< raw::CaloRawDigit * > m_DigitHitVec
vector of digitized hits
std::unique_ptr< util::SiPMUtils > fSiPMUtils
used for the SiPM saturation
list x
Definition: train.py:276
std::vector< const sdp::CaloDeposit * > m_SimCaloHitVec
used to store the simulated hits
Definition: fwd.h:31