BmnRoot
Loading...
Searching...
No Matches
CbmBmnStsDigitize.h
Go to the documentation of this file.
1// -------------------------------------------------------------------------
2// ----- CbmBmnStsDigitize header file -----
3// ----- Created 01/07/2008 by R. Karabowicz -----
4// -------------------------------------------------------------------------
5
17#ifndef CBMBMNSTSDIGITIZE_H
18#define CBMBMNSTSDIGITIZE_H 1
19
20#include <set>
21#include "TStopwatch.h"
22#include "FairTask.h"
23#include "CbmStsDigiScheme.h"
24#include "BmnEventHeader.h"
25#include <sstream>
26//#include "CbmBmnStsDigiScheme.h"
27
28using std::set;
29using std::map;
30using std::pair;
31
32class TClonesArray;
33class TGeoNode;
34class CbmGeostsPar;
35class CbmBmnStsDigiPar;
36class CbmStsStation;
37class BmnEventHeader;
38
39class CbmStsPoint;
40
41
42class CbmBmnStsDigitize : public FairTask
43{
44
45 public:
46
49
50
52 CbmBmnStsDigitize(Int_t iVerbose);
53
54
56 CbmBmnStsDigitize(const char* name, Int_t iVerbose);
57
58
61
62 void SetStep(Double_t tStep) {fStep = tStep;}
63
65 virtual void Exec(Option_t* opt);
66
68 virtual void Finish();
69
70 virtual void SetRealisticResponse(Bool_t real=kTRUE) {fRealistic = real;}
71
72 void FindFiredStrips(CbmStsPoint* pnt,Int_t& nofStr,Int_t*& strips,Double_t*& signals,Int_t side);
74
75 void SetFrontThreshold (Double_t frontThr=0.) {fFThreshold = frontThr;}
76 void SetBackThreshold (Double_t backThr=0.) {fBThreshold = backThr;}
77 void SetFrontNoiseWidth(Double_t frontNoW=0.) {fFNoiseWidth = frontNoW;}
78 void SetBackNoiseWidth (Double_t backNoW=0.) {fBNoiseWidth = backNoW;}
79
80 void SetFrontNofBits (Int_t frontNB=0 ) {fFNofBits = frontNB;}
81 void SetBackNofBits (Int_t backNB=0 ) {fBNofBits = backNB;}
82 void SetFrontNofElPerAdc (Double_t frontMS=0.) {fFNofElPerAdc = frontMS;}
83 void SetBackNofElPerAdc (Double_t backMS=0.) {fBNofElPerAdc = backMS;}
84
85 void SetStripDeadTime (Double_t StripDeadTime=0.) {fStripDeadTime = StripDeadTime;}
86 void SetGeoFile (TString geoFile) {fGeoFile = geoFile;} //GP
87 void ApplyAlignment(); //AZ
88 Bool_t MC=false;
89
90 static const Int_t nStaGEMs = 6;
91 map<Int_t,Double_t> digiMap[nStaGEMs][2];
92 map<Int_t,Double_t>::iterator mit;
93
94
95 private:
96
97 CbmGeoStsPar* fGeoPar;
98 CbmStsDigiPar* fDigiPar;
99 CbmStsDigiScheme* fDigiScheme;
100 TClonesArray* fPoints;
101 TClonesArray* fPointsSI;
102 TClonesArray* fPointsT0;
103 //TClonesArray* fPointsBC2; /** Input array of CbmStsDigi from BC2 **/
104 //TClonesArray* fPointsVeto; /** Input array of CbmStsDigi from Veto **/
105 //TClonesArray* fPointsBD; /** Input array of CbmStsDigi from Veto **/
106 //TClonesArray* fPointsSi; /** Input array of CbmStsDigi from Veto **/
107 TClonesArray* fDigis;
108 TClonesArray* fDigisCSC;
109 TClonesArray* fDigiMatches;
110 TClonesArray* fEventHeader;
111 TClonesArray* fBMNEventHeader;
113 TClonesArray* fPointsBC1;
114 TClonesArray* fPointsBC2;
115 TClonesArray* fPointsVeto;
116 TClonesArray* fPointsBD;
117 TClonesArray* fPointsSi;
118
119
120 // statistics
121 Int_t fNDigis;
122 Int_t fNMulti;
123 Int_t fch=0;
124 Int_t fchtrig=0;
125
126 Double_t fNEvents;
127 Double_t fNPoints;
128 Double_t fNDigisFront;
129 Double_t fNDigisBack;
130 Double_t fTime;
131
132 // settings
133 Double_t fStep;
134
135 TStopwatch fTimer;
136
137 Bool_t fRealistic;
138 Double_t fEnergyLossToSignal;
139
140 Double_t fFThreshold;
141 Double_t fBThreshold;
142 Double_t fFNoiseWidth;
143 Double_t fBNoiseWidth;
144
145 Double_t fStripDeadTime;
146 TString fGeoFile;
147
148 Int_t fFNofBits;
149 Int_t fBNofBits;
150 Double_t fFNofElPerAdc;
151 Double_t fBNofElPerAdc;
152 Int_t fFNofSteps;
153 Int_t fBNofSteps;
154
155 Double_t* fStripSignalF;
156 Double_t* fStripSignalB;
157
158 // map of the point indices contributing to a fired strip
159 map<Int_t, set<Int_t> > fFChannelPointsMap;
160 map<Int_t, set<Int_t> > fBChannelPointsMap;
161
162
163
164 map<CbmStsSensor*, set<Int_t> > fPointMap;
165 Float_t occupancy [20][1000][20] ;
166
168 void MakeSets();
169 void MakeSets1();
170
171
172 Bool_t GetBmnGeom(const char* fileName);
173
175 virtual void SetParContainers();
176
177
179 virtual InitStatus Init();
180
181
183 virtual InitStatus ReInit();
184
185
187 void Reset();
188
190 Bool_t CrossSpacer(const TGeoNode *node, const CbmStsPoint *point);
191
193 CbmBmnStsDigitize operator=(const CbmBmnStsDigitize&);
194
195 ClassDef(CbmBmnStsDigitize,2);
196
197};
198
199#endif
virtual void SetRealisticResponse(Bool_t real=kTRUE)
void SetFrontNofBits(Int_t frontNB=0)
void SetStep(Double_t tStep)
virtual void Finish()
virtual ~CbmBmnStsDigitize()
void SetFrontNofElPerAdc(Double_t frontMS=0.)
void SetBackNofBits(Int_t backNB=0)
void SetStripDeadTime(Double_t StripDeadTime=0.)
CbmBmnStsDigitize(Int_t iVerbose)
void SetFrontThreshold(Double_t frontThr=0.)
void SetFrontNoiseWidth(Double_t frontNoW=0.)
void SetGeoFile(TString geoFile)
void ProduceHitResponse(CbmStsSensor *sensor)
void SetBackThreshold(Double_t backThr=0.)
CbmBmnStsDigitize(const char *name, Int_t iVerbose)
void FindFiredStrips(CbmStsPoint *pnt, Int_t &nofStr, Int_t *&strips, Double_t *&signals, Int_t side)
static const Int_t nStaGEMs
void SetBackNofElPerAdc(Double_t backMS=0.)
virtual void Exec(Option_t *opt)
void SetBackNoiseWidth(Double_t backNoW=0.)
map< Int_t, Double_t > digiMap[nStaGEMs][2]
map< Int_t, Double_t >::iterator mit