FairRoot/PandaRoot
PndGemDigitize.h
Go to the documentation of this file.
1 //* $Id: */
2 
3 // -------------------------------------------------------------------------
4 // ----- PndGemDigitize header file -----
5 // ----- Created 12/02/2009 by R. Karabowicz -----
6 // -------------------------------------------------------------------------
7 
8 
20 #ifndef PNDGEMDIGITIZE_H
21 #define PNDGEMDIGITIZE_H 1
22 
23 #include <PndPersistencyTask.h>
24 #include "TStopwatch.h"
25 #include "TRandom2.h"
26 #include "PndGemMCPoint.h"
27 #include "PndGemSensor.h"
28 
29 #include <list>
30 #include <map>
31 
32 class TClonesArray;
33 class PndGemDigiPar;
35 
36 
38 {
39 
40  public:
41 
44 
45 
47  PndGemDigitize(Int_t iVerbose);
48 
49 
51  PndGemDigitize(const char* name, Int_t iVerbose);
52 
53 
55  virtual ~PndGemDigitize();
56 
57 
59  virtual void Exec(Option_t* opt);
60 
61 
63  void SaveOutsideHits(Bool_t bt=kTRUE) {fSaveOutsideHits = bt;}
64 
65 
67 
68  void RunTimeBased(Bool_t bt=kTRUE) {fTimeOrderedDigi = bt;}
69 
70  Bool_t GetTimeBased() const { return fTimeOrderedDigi; }
71 
72  void SetShowerSigma(Double_t dd) {fSSigma = dd;} //sigam for realistic response
73 
74  private:
75 
77  TClonesArray* fPoints;
78  TClonesArray* fDigis;
79  TClonesArray* fDigiMatches;
82  TClonesArray* fHitOutsideArray;
84  Int_t fTNofEvents;
85  Int_t fTNofPoints;
86  Int_t fTNofDigis;
87  TRandom2* fRand;
90 
91  Int_t fNPoints;
92  Int_t fNFailed;
93  Int_t fNOutside;
94  Int_t fNMulti;
95  Int_t fNDigis;
96 
97  TStopwatch fTimer;
98 
101  std::map<std::pair<Int_t, Int_t>, Int_t> fChannelMap;
102 
103 
105  virtual void SetParContainers();
106 
107 
109  virtual InitStatus Init();
110 
111 
113  virtual InitStatus ReInit();
114 
115 
117  void Reset();
118 
119 
121  virtual void Finish();
122 
123 
125  void DigitizeEvent();
126 
128  void DigitizeRealisticEvent();
129 
131  void SimulateRectangularResponse(Int_t sensorDetId, Int_t side, Double_t channelInd, Double_t stripWidth, Double_t showerSigma, Double_t showerStrength, Int_t iPoint);
132 
134  void SimulateGaussianResponse(PndGemSensor* sensor, Int_t side, PndGemMCPoint* gemPoint, Double_t showerSigma, Double_t showerStrength, Int_t iPoint);
135 
137  void ActivateChannel(Int_t sensorDetId, Int_t sensorSide, Int_t channelNumber, Double_t signalHeight, Double_t signalTime, Int_t iPoint);
138 
140  void PrintDigis();
141 
143 
144 };
145 
146 #endif
147 
148 
virtual InitStatus Init()
Bool_t fSaveOutsideHits
Bool_t GetTimeBased() const
TRandom2 * fRand
void SimulateGaussianResponse(PndGemSensor *sensor, Int_t side, PndGemMCPoint *gemPoint, Double_t showerSigma, Double_t showerStrength, Int_t iPoint)
void SetShowerSigma(Double_t dd)
void ActivateChannel(Int_t sensorDetId, Int_t sensorSide, Int_t channelNumber, Double_t signalHeight, Double_t signalTime, Int_t iPoint)
void RunTimeBased(Bool_t bt=kTRUE)
ClassDef(PndGemDigitize, 1)
TGeoVolume * sensor
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:31
virtual void Exec(Option_t *opt)
virtual InitStatus ReInit()
virtual void Finish()
Double_t
PndGemDigiWriteoutBuffer * fDataBuffer
void SetRealisticResponse(Bool_t bt=kTRUE)
PndGemDigiPar * fDigiPar
Double_t fSSigma
TString name
TClonesArray * fDigis
virtual void SetParContainers()
TClonesArray * fHitOutsideArray
virtual ~PndGemDigitize()
Int_t iVerbose
TClonesArray * fDigiMatches
void DigitizeRealisticEvent()
TClonesArray * fPoints
void SaveOutsideHits(Bool_t bt=kTRUE)
std::map< std::pair< Int_t, Int_t >, Int_t > fChannelMap
void SimulateRectangularResponse(Int_t sensorDetId, Int_t side, Double_t channelInd, Double_t stripWidth, Double_t showerSigma, Double_t showerStrength, Int_t iPoint)
TStopwatch fTimer
Bool_t fRealisticResponse
Bool_t fTimeOrderedDigi