PandaRoot
PndEmcMakeDigi.h
Go to the documentation of this file.
1 //----------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: Exp $
4 //
5 // Description:
6 // Class PndEmcMakeDigi. This class takes array of EmcHit's and produce
7 // an array of EmcDigis.
8 // It is convenient to study reconstruction algoritms without
9 // disturbance from digitization
10 //
11 // Software developed for the BaBar Detector at the SLAC B-Factory.
12 // Adapted for the PANDA experiment at GSI
13 //----------------------------------------------------------------------
14 //#pragma once
15 #ifndef PndEmcMakeDigi_H
16 #define PndEmcMakeDigi_H
17 
18 #include <PndPersistencyTask.h>
19 #include <string>
20 
22 class PndEmcHit;
23 class PndEmcDigi;
24 
25 class TClonesArray;
26 class PndEmcGeoPar;
27 class PndEmcDigiPar;
28 class PndEmcRecoPar;
29 
38 {
39 public:
40  // Constructors
41  PndEmcMakeDigi(Bool_t storedigis=kTRUE);
42  // Destructor
43  virtual ~PndEmcMakeDigi();
44 
45  virtual InitStatus Init();
46  virtual void Exec(Option_t* opt);
47 
48 protected:
49  PndEmcDigi* AddDigi(Int_t trackID,Int_t detID, Float_t energy, Float_t time, Int_t hitIndex);
50  void SetStorageOfData(Bool_t val);
51 
52  virtual void SetParContainers();
53 private:
54  // don't allow copying (-Weffc++)
55  PndEmcMakeDigi(const PndEmcMakeDigi&); // no implementation
56  PndEmcMakeDigi& operator= (const PndEmcMakeDigi&); // no implementation
57 
58 public: // Set and Get methods
59  void SetDigiPosMethod(const std::string& digiPosMethod);
60  const std::string& GetDigiPosMethod() const;
61 
62 private:
64  TClonesArray* fHitArray;
66  TClonesArray* fDigiArray;
67 
68  Double_t fThreshold;
69 
70  std::string fDigiPosMethod;// "surface" or "depth"
71  Double_t fEmcDigiRescaleFactor;
72  Double_t fEmcDigiPositionDepthPWO;
73  Double_t fEmcDigiPositionDepthShashlyk;
74 
75  Int_t fUseDigiEffectiveSmearing;
76  Double_t fDetectedPhotonsPerMeV;
77  Double_t fNPhotoElectronsPerMeVAPDBarrel;
78  Double_t fNPhotoElectronsPerMeVAPDBWD;
79  Double_t fNPhotoElectronsPerMeVVPT;
80  Double_t fSensitiveAreaAPD; //mm^2
81  Double_t fSensitiveAreaVPT; //mm^2
82  Double_t fQuantumEfficiencyAPD;
83  Double_t fQuantumEfficiencyVPT;
84  Double_t fExcessNoiseFactorAPD;
85  Double_t fExcessNoiseFactorVPT;
86  Double_t fIncoherent_elec_noise_width_GeV_APD; //GeV
87  Double_t fIncoherent_elec_noise_width_GeV_VPT; //GeV
88 
89  Int_t fMapVersion;
90 
91  PndEmcGeoPar* fGeoPar;
92  PndEmcDigiPar* fDigiPar;
93  PndEmcRecoPar* fRecoPar;
94 
95  Bool_t fStoreDigis;
96 
97  Int_t fNrOfEvents;
98  Int_t evtCounter;
99  Int_t nDigiProg;
100 
101  ClassDef(PndEmcMakeDigi,1);
102 };
103 
104 #endif
stores crystal index coordinates (x,y) or (theta,phi)
PndEmcMakeDigi(Bool_t storedigis=kTRUE)
virtual InitStatus Init()
void SetDigiPosMethod(const std::string &digiPosMethod)
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
void SetStorageOfData(Bool_t val)
Method to specify whether digis are stored or not.
PndEmcDigi * AddDigi(Int_t trackID, Int_t detID, Float_t energy, Float_t time, Int_t hitIndex)
virtual void Exec(Option_t *opt)
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:28
virtual void SetParContainers()
virtual ~PndEmcMakeDigi()
Task to create PndEmcDigi from PndEmcHit.
Parameter set for Emc Reco.
Definition: PndEmcRecoPar.h:12
const std::string & GetDigiPosMethod() const