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