MuIDReadoutSimStandardAlg.h
Go to the documentation of this file.
1 //
2 // MuIDReadoutSimStandardAlg.h
3 //
4 // Created by Eldwan Brianne on 8/27/18.
5 //
6 
7 #ifndef GAR_READOUTSIM_MuIDReadoutSimStandardAlg_h
8 #define GAR_READOUTSIM_MuIDReadoutSimStandardAlg_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  MuIDReadoutSimStandardAlg(CLHEP::HepRandomEngine& engine, fhicl::ParameterSet const& pset);
28 
29  virtual ~MuIDReadoutSimStandardAlg();
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* DoStripDigitization(float x, float y, float z, float energy, float time, raw::CellID_t cID) const;
50 
51  std::pair< std::array<double, 3>, bool > CalculatePosition(float x, float y, float z, raw::CellID_t cID) const;
52 
53  std::pair<float, float> DoLightPropagation(float x, float y, float z, float time, raw::CellID_t cID) const;
54 
55  private:
56 
57  std::unique_ptr<util::SiPMUtils> fSiPMUtils; ///<used for the SiPM saturation
58 
59  std::vector<const sdp::CaloDeposit*> m_SimCaloHitVec; ///<used to store the simulated hits
60 
61  std::vector< raw::CaloRawDigit* > m_DigitHitVec; ///<vector of digitized hits
62 
63  TGeoManager* fGeoManager;
64  };
65 
66  }
67 }
68 
69 #endif /* GAR_READOUTSIM_MuIDReadoutSimStandardAlg_h */
std::vector< raw::CaloRawDigit * > m_DigitHitVec
vector of digitized hits
struct vector vector
std::vector< const sdp::CaloDeposit * > m_SimCaloHitVec
used to store the simulated hits
std::vector< raw::CaloRawDigit * > GetDigitizedHits() const
virtual void reconfigure(fhicl::ParameterSet const &pset)
std::unique_ptr< util::SiPMUtils > fSiPMUtils
used for the SiPM saturation
Interface to SiPMReadoutSimAlg class for SiPM specific.
long long int CellID_t
Definition: CaloRawDigit.h:24
General GArSoft Utilities.
list x
Definition: train.py:276
Definition: fwd.h:31