PandaRoot
BSEmcIdealDigitizationProcess.h
Go to the documentation of this file.
1 #ifndef BSEMCIDEALDIGITIZATIONPROCESS_HH
2 #define BSEMCIDEALDIGITIZATIONPROCESS_HH
3 
4 #include <string>
5 #include <vector>
6 
7 #include "Rtypes.h"
8 #include "RtypesCore.h"
9 
10 #include "PndContainerI.h"
11 #include "PndProcess.h"
12 
13 #include "BSEmcDigitizationData.h"
14 
15 class FairParGenericSet;
16 class BSEmcMCHit;
17 class BSEmcDigi;
19 class TBuffer;
20 class TClass;
21 class TMemberInspector;
23 template <class T>
25 template <class T>
27 
37 class BSEmcIdealDigitizationProcess : public PndProcess<BSEmcDigitizationData> {
38  public:
41  virtual void SetData(BSEmcDigitizationData *t_data) /*override*/;
42  virtual void SetDetectorName(const std::string &t_detectorName) /*override*/;
43  virtual void SetupParameters(const PndParameterRegister *t_paramRegister) /*override*/;
44  virtual void Process() /*override*/;
45  std::vector<BSEmcDigi *> DigitizeHits(const std::vector<const BSEmcMCHit *> &t_mchitCont);
46  BSEmcDigi *DigitizeHit(const BSEmcMCHit *t_hit, Int_t t_hitIndex);
47  void SetReadoutType(const std::string &t_readout) { fReadOut = t_readout; }
48  void SetDigiParName(const std::string &t_parName) { fDigiParName = t_parName; }
49 
50  protected:
51  std::string fDigiParName{""};
52  std::string fReadOut{""};
54  Double_t fEnergyDigiThreshold{-1};
55  Double_t fDetectedPhotonsPerMeV{-1};
56  Double_t fQuantumEfficiency{-1};
57  Double_t fExcessNoiseFactor{-1};
58  Double_t fIncoherentElecNoiseWidthGeV{-1}; // GeV
59  Double_t fNPhotoElectronsPerMeV{-1};
60  Double_t fNoiseOverNElectrons{-1};
61  std::string fHitBranchName{""};
64 
65  private:
66  BSEmcDigi *AddDigi(Int_t t_detID, Double_t t_energy, Float_t t_time, Int_t t_hitIndex);
67 
68  virtual Double_t SmearEnergy(Double_t t_energy) const;
69  virtual Double_t GausSmearing(Double_t t_energy) const;
70  virtual Double_t PhotonStatisticSmearing(Double_t t_energy) const;
71 
72  virtual Double_t DigitizedEnergy(Double_t t_energy, Int_t t_detId) const;
73  virtual Double_t GetGain(Int_t t_detId) const;
74 
75  ClassDef(BSEmcIdealDigitizationProcess, 1);
76 };
77 
78 #endif /*BSEMCIDEALDIGITIZATIONPROCESS_HH*/
Base Process class.
Definition: PndProcess.h:24
std::vector< BSEmcDigi * > DigitizeHits(const std::vector< const BSEmcMCHit *> &t_mchitCont)
virtual void SetupParameters(const PndParameterRegister *t_paramRegister)
Fetch all parameters from the PndParameterRegister.
Smears BSEmcMCHit energy and forms BSEmcDigi if energy above threshold.
virtual void Process()
The actual data transformation (digitizing, clustering, etc.) should be defined here.
void SetDigiParName(const std::string &t_parName)
PndOutputContainerI< BSEmcDigi > * fDigiArray
virtual void SetData(BSEmcDigitizationData *t_data)
Pass the data container ptrs to the process, and store pointers in class members. ...
BSEmcDigi * DigitizeHit(const BSEmcMCHit *t_hit, Int_t t_hitIndex)
represents the reconstructed hit of one emc crystal
Definition: BSEmcDigi.h:47
void SetReadoutType(const std::string &t_readout)
PndInputContainerI< BSEmcMCHit > * fHitArray
Interface to a datacontainer to be used in PandaROOT.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
virtual void SetDetectorName(const std::string &t_detectorName)
Set the Detector name. Important, as most EmcParameter need to know for which detector they need to b...
represents the deposited energy of one emc crystal from simulation
Definition: BSEmcMCHit.h:32
DataStruct to pass addresses to data Container between BSEmcDigitizerTask and PndProcess<BSEmcDigitiz...