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 
18 #ifndef PNDGEMDIGITIZE_H
19 #define PNDGEMDIGITIZE_H 1
20 
21 #include <PndPersistencyTask.h>
22 #include "TStopwatch.h"
23 #include "TRandom.h"
24 #include "PndGemMCPoint.h"
25 #include "PndGemSensor.h"
26 
27 #include <list>
28 #include <map>
29 
30 class TClonesArray;
31 class PndGemDigiPar;
33 
35 
36  public:
39 
41  PndGemDigitize(Int_t iVerbose);
42 
44  PndGemDigitize(const char *name, Int_t iVerbose);
45 
47  virtual ~PndGemDigitize();
48 
50  virtual void Exec(Option_t *opt);
51 
53  void SaveOutsideHits(Bool_t bt = kTRUE) { fSaveOutsideHits = bt; }
54 
55  void SetRealisticResponse(Bool_t bt = kTRUE) { fRealisticResponse = bt; }
56 
57  void RunTimeBased(Bool_t bt = kTRUE) { fTimeOrderedDigi = bt; }
58 
59  Bool_t GetTimeBased() const { return fTimeOrderedDigi; }
60 
61  void SetShowerSigma(Double_t dd) { fSSigma = dd; } // sigam for realistic response
62 
63  private:
64  PndGemDigiPar *fDigiPar;
65  TClonesArray *fPoints;
66  TClonesArray *fDigis;
67  TClonesArray *fDigiMatches;
68  Double_t fSSigma;
69  Bool_t fSaveOutsideHits;
70  TClonesArray *fHitOutsideArray;
71  Bool_t fRealisticResponse;
72  Int_t fTNofEvents;
73  Int_t fTNofPoints;
74  Int_t fTNofDigis;
75  PndGemDigiWriteoutBuffer *fDataBuffer;
76  Bool_t fTimeOrderedDigi;
77 
78  Int_t fNPoints;
79  Int_t fNFailed;
80  Int_t fNOutside;
81  Int_t fNMulti;
82  Int_t fNDigis;
83 
84  TStopwatch fTimer;
85 
88  std::map<std::pair<Int_t, Int_t>, Int_t> fChannelMap;
89 
91  virtual void SetParContainers();
92 
94  virtual InitStatus Init();
95 
97  virtual InitStatus ReInit();
98 
100  void Reset();
101 
103  virtual void Finish();
104 
106  void DigitizeEvent();
107 
109  void DigitizeRealisticEvent();
110 
112  void SimulateRectangularResponse(Int_t sensorDetId, Int_t side, Double_t channelInd, Double_t stripWidth, Double_t showerSigma, Double_t showerStrength, Int_t iPoint);
113 
115  void SimulateGaussianResponse(PndGemSensor *sensor, Int_t side, PndGemMCPoint *gemPoint, Double_t showerSigma, Double_t showerStrength, Int_t iPoint);
116 
118  void ActivateChannel(Int_t sensorDetId, Int_t sensorSide, Int_t channelNumber, Double_t signalHeight, Double_t signalTime, Int_t iPoint);
119 
121  void PrintDigis();
122 
123  ClassDef(PndGemDigitize, 1);
124 };
125 
126 #endif
Bool_t GetTimeBased() const
void SetShowerSigma(Double_t dd)
void RunTimeBased(Bool_t bt=kTRUE)
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
virtual ~PndGemDigitize()
void SetRealisticResponse(Bool_t bt=kTRUE)
virtual void Exec(Option_t *opt)
void SaveOutsideHits(Bool_t bt=kTRUE)