BmnRoot
Loading...
Searching...
No Matches
CbmStsDigitize.h
Go to the documentation of this file.
1//* $Id: */
2
3// -------------------------------------------------------------------------
4// ----- CbmStsDigitize header file -----
5// ----- Created 01/07/2008 by R. Karabowicz -----
6// -------------------------------------------------------------------------
7
8
20#ifndef CBMSTSDIGITIZE_H
21#define CBMSTSDIGITIZE_H 1
22
23#include <set>
24#include "TStopwatch.h"
25#include "FairTask.h"
26
27using std::set;
28using std::map;
29using std::pair;
30
31class TClonesArray;
32class CbmGeoStsPar;
33class CbmStsDigiPar;
35class CbmStsSensor;
36class CbmStsStation;
37class CbmMatch;
38
39class CbmStsPoint;
40
41
42class CbmStsDigitize : public FairTask
43{
44
45 public:
46
49
50
52 CbmStsDigitize(Int_t iVerbose);
53
54
56 CbmStsDigitize(const char* name, Int_t iVerbose);
57
58
60 virtual ~CbmStsDigitize();
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);
73 void ProduceHitResponseSi(CbmStsSensor* sensor); //AZ
74 void ProduceHitResponse(CbmStsSensor* sensor);
75 void ProduceHitResponseAZ(CbmStsSensor* sensor); //AZ
76 //void ProduceHitResponseFast(CbmStsSensor* sensor); //AZ
77
78 void SetFrontThreshold (Double_t frontThr=0.) {fFThreshold = frontThr;}
79 void SetBackThreshold (Double_t backThr=0.) {fBThreshold = backThr;}
80 void SetFrontNoiseWidth(Double_t frontNoW=0.) {fFNoiseWidth = frontNoW;}
81 void SetBackNoiseWidth (Double_t backNoW=0.) {fBNoiseWidth = backNoW;}
82
83 void SetFrontNofBits (Int_t frontNB=0 ) {fFNofBits = frontNB;}
84 void SetBackNofBits (Int_t backNB=0 ) {fBNofBits = backNB;}
85 void SetFrontNofElPerAdc (Double_t frontMS=0.) {fFNofElPerAdc = frontMS;}
86 void SetBackNofElPerAdc (Double_t backMS=0.) {fBNofElPerAdc = backMS;}
87
88 void SetStripDeadTime (Double_t StripDeadTime=0.) {fStripDeadTime = StripDeadTime;}
89 void SetLoss2Signal (Double_t coef) { fEnergyLossToSignal = coef; } //AZ
90 void ApplyAlignment(); //AZ
91 Int_t GetNofModules(TGeoNode* station); //AZ
92 void CreateDigi(Int_t address, UShort_t channel, Long64_t time,
93 UShort_t adc, const CbmMatch& match) {;} //AZ
94 Int_t GetELossModel() const { return 2; } //AZ
95
96 private:
97
98 CbmGeoStsPar* fGeoPar;
99 CbmStsDigiPar* fDigiPar;
100 CbmStsDigiScheme* fDigiScheme;
101 TClonesArray* fPointsSi;
102 TClonesArray* fPoints;
103 TClonesArray* fDigis;
104 TClonesArray* fDigiMatches;
105 TClonesArray* fMCTracks;
107 // statistics
108 Int_t fNDigis;
109 Int_t fNMulti;
110
111 Double_t fNEvents;
112 Double_t fNPoints;
113 Double_t fNDigisFront;
114 Double_t fNDigisBack;
115 Double_t fTime;
116
117 // settings
118 Double_t fStep;
119
120 TStopwatch fTimer;
121
122 Bool_t fRealistic;
123 Double_t fEnergyLossToSignal;
124
125 Double_t fFThreshold;
126 Double_t fBThreshold;
127 Double_t fFNoiseWidth;
128 Double_t fBNoiseWidth;
129
130 Double_t fStripDeadTime;
131
132 Int_t fFNofBits;
133 Int_t fBNofBits;
134 Double_t fFNofElPerAdc;
135 Double_t fBNofElPerAdc;
136 Int_t fFNofSteps;
137 Int_t fBNofSteps;
138
139 Double_t* fStripSignalF;
140 Double_t* fStripSignalB;
141
142 // map of the point indices contributing to a fired strip
143 map<Int_t, set<Int_t> > fFChannelPointsMap;
144 map<Int_t, set<Int_t> > fBChannelPointsMap;
145
146 map<CbmStsSensor*, set<Int_t> > fPointMap;
147 FairTask *fastDig; //AZ
148 Float_t occupancy [20][1000][20] ;
149
151 void MakeSets();
152 void MakeSets1();
153
155 virtual void SetParContainers();
156
157
159 virtual InitStatus Init();
160
161
163 virtual InitStatus ReInit();
164
165
167 void Reset();
168
170 Bool_t CrossSpacer(const TGeoNode *node, const CbmStsPoint *point);
171 Double_t GetNumberOfClusters(Double_t beta, Double_t gamma, Double_t charge, Double_t p0, Double_t p1); //AZ
172
174 CbmStsDigitize operator=(const CbmStsDigitize&);
175
176 ClassDef(CbmStsDigitize,1);
177
178};
179
180#endif
181
182
virtual void Exec(Option_t *opt)
void SetLoss2Signal(Double_t coef)
virtual ~CbmStsDigitize()
void ApplyAlignment()
void ProduceHitResponseSi(CbmStsSensor *sensor)
Int_t GetELossModel() const
void ProduceHitResponseAZ(CbmStsSensor *sensor)
void SetBackNofElPerAdc(Double_t backMS=0.)
void SetBackNoiseWidth(Double_t backNoW=0.)
void ProduceHitResponse(CbmStsSensor *sensor)
virtual void Finish()
void SetFrontNofElPerAdc(Double_t frontMS=0.)
void SetFrontNoiseWidth(Double_t frontNoW=0.)
void CreateDigi(Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const CbmMatch &match)
void SetStep(Double_t tStep)
void SetFrontThreshold(Double_t frontThr=0.)
virtual void SetRealisticResponse(Bool_t real=kTRUE)
Int_t GetNofModules(TGeoNode *station)
void SetBackNofBits(Int_t backNB=0)
void SetBackThreshold(Double_t backThr=0.)
void SetFrontNofBits(Int_t frontNB=0)
void SetStripDeadTime(Double_t StripDeadTime=0.)
void FindFiredStrips(CbmStsPoint *pnt, Int_t &nofStr, Int_t *&strips, Double_t *&signals, Int_t side)