BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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
6/** CbmStsDigitise
7 *@author Volker Friese <v.friese@gsi.de>
8 *@since 30.08.06
9 *@version 1.0
10 **
11 ** CBM task class for digitising STS
12 ** Task level SIM
13 ** Produces objects of type CbmStsDigi out of CbmStsPoint.
14 **/
15
16#ifndef CBMBMNSTSDIGITIZE_H
17#define CBMBMNSTSDIGITIZE_H 1
18
19#include "BmnEventHeader.h"
20#include "CbmStsDigiScheme.h"
21#include "FairTask.h"
22#include "TStopwatch.h"
23
24#include <set>
25#include <sstream>
26// #include "CbmBmnStsDigiScheme.h"
27
28using std::map;
29using std::pair;
30using std::set;
31
32class TClonesArray;
33class TGeoNode;
34class CbmGeostsPar;
35class CbmBmnStsDigiPar;
36class CbmStsStation;
37class BmnEventHeader;
38
39class CbmStsPoint;
40
42{
43
44 public:
45 /** Default constructor **/
47
48 /** Standard constructor **/
49 CbmBmnStsDigitize(Int_t iVerbose);
50
51 /** Constructor with name **/
52 CbmBmnStsDigitize(const char* name, Int_t iVerbose);
53
54 /** Destructor **/
55 virtual ~CbmBmnStsDigitize();
56
57 void SetStep(Double_t tStep) { fStep = tStep; }
58
59 /** Execution **/
60 virtual void Exec(Option_t* opt);
61
62 /** Virtual method Finish **/
63 virtual void Finish();
64
65 virtual void SetRealisticResponse(Bool_t real = kTRUE) { fRealistic = real; }
66
67 void FindFiredStrips(CbmStsPoint* pnt, Int_t& nofStr, Int_t*& strips, Double_t*& signals, Int_t side);
68 void ProduceHitResponse(CbmStsSensor* sensor);
69
70 void SetFrontThreshold(Double_t frontThr = 0.) { fFThreshold = frontThr; }
71 void SetBackThreshold(Double_t backThr = 0.) { fBThreshold = backThr; }
72 void SetFrontNoiseWidth(Double_t frontNoW = 0.) { fFNoiseWidth = frontNoW; }
73 void SetBackNoiseWidth(Double_t backNoW = 0.) { fBNoiseWidth = backNoW; }
74
75 void SetFrontNofBits(Int_t frontNB = 0) { fFNofBits = frontNB; }
76 void SetBackNofBits(Int_t backNB = 0) { fBNofBits = backNB; }
77 void SetFrontNofElPerAdc(Double_t frontMS = 0.) { fFNofElPerAdc = frontMS; }
78 void SetBackNofElPerAdc(Double_t backMS = 0.) { fBNofElPerAdc = backMS; }
79
80 void SetStripDeadTime(Double_t StripDeadTime = 0.) { fStripDeadTime = StripDeadTime; }
81 void SetGeoFile(TString geoFile) { fGeoFile = geoFile; } // GP
82 void ApplyAlignment(); // AZ
83 Bool_t MC = false;
84
85 static const Int_t nStaGEMs = 6;
86 map<Int_t, Double_t> digiMap[nStaGEMs][2];
87 map<Int_t, Double_t>::iterator mit;
88
89 private:
90 CbmGeoStsPar* fGeoPar; /** Geometry parameter container **/
91 CbmStsDigiPar* fDigiPar; /** Digitisation parameter container **/
92 CbmStsDigiScheme* fDigiScheme; /** Digitisation scheme **/
93 TClonesArray* fPoints; /** Input array of CbmStsDigi from GEM **/
94 TClonesArray* fPointsSI; /** Input array of CbmStsDigi from Silicon **/
95 TClonesArray* fPointsT0; /** Input array of CbmStsDigi from T0 **/
96 // TClonesArray* fPointsBC2; /** Input array of CbmStsDigi from BC2 **/
97 // TClonesArray* fPointsVeto; /** Input array of CbmStsDigi from Veto **/
98 // TClonesArray* fPointsBD; /** Input array of CbmStsDigi from Veto **/
99 // TClonesArray* fPointsSi; /** Input array of CbmStsDigi from Veto **/
100 TClonesArray* fDigis; /** Output array of CbmStsDigi **/
101 TClonesArray* fDigisCSC; /** Output array of CbmStsDigi **/
102 TClonesArray* fDigiMatches; /** Output array of CbmStsDigiMatches**/
103 TClonesArray* fEventHeader; /** Input array of raw EventHeader**/
104 TClonesArray* fBMNEventHeader; /** Output array of raw bmn EventHeader**/
105
111
112 // statistics
117
123
124 // settings
126
128
131
136
139
146
149
150 // map of the point indices contributing to a fired strip
151 map<Int_t, set<Int_t>> fFChannelPointsMap;
152 map<Int_t, set<Int_t>> fBChannelPointsMap;
153
154 map<CbmStsSensor*, set<Int_t>> fPointMap; /** sensor points **/
155 Float_t occupancy[20][1000][20];
156
157 /** Make sensorwise set for points **/
158 void MakeSets();
159 void MakeSets1();
160
161 Bool_t GetBmnGeom(const char* fileName);
162
163 /** Get parameter containers **/
164 virtual void SetParContainers();
165
166 /** Intialisation **/
167 virtual InitStatus Init();
168
169 /** Reinitialisation **/
170 virtual InitStatus ReInit();
171
172 /** Reset eventwise counters **/
173 void Reset();
174
175 /** AZ Check if particle goes thru the spacer (dead space) **/
176 Bool_t CrossSpacer(const TGeoNode* node, const CbmStsPoint* point);
177
180
182};
183
184#endif
bool Bool_t
int Int_t
float Float_t
double Double_t
constexpr Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
Bool_t GetBmnGeom(const char *fileName)
TClonesArray * fPointsSi
virtual void SetRealisticResponse(Bool_t real=kTRUE)
void SetFrontNofBits(Int_t frontNB=0)
void SetStep(Double_t tStep)
TClonesArray * fDigis
Input array of CbmStsDigi from T0.
TClonesArray * fPointsBD
CbmGeoStsPar * fGeoPar
void SetFrontNofElPerAdc(Double_t frontMS=0.)
void Reset()
Reset eventwise counters.
void SetBackNofBits(Int_t backNB=0)
void SetStripDeadTime(Double_t StripDeadTime=0.)
Bool_t CrossSpacer(const TGeoNode *node, const CbmStsPoint *point)
AZ Check if particle goes thru the spacer (dead space).
TClonesArray * fPoints
Digitisation scheme.
map< Int_t, set< Int_t > > fFChannelPointsMap
virtual void Finish()
Virtual method Finish.
TClonesArray * fPointsT0
Input array of CbmStsDigi from Silicon.
map< Int_t, set< Int_t > > fBChannelPointsMap
virtual void Exec(Option_t *opt)
Execution.
virtual ~CbmBmnStsDigitize()
Destructor.
CbmBmnStsDigitize()
Default constructor.
TClonesArray * fBMNEventHeader
Input array of raw EventHeader.
void SetFrontThreshold(Double_t frontThr=0.)
TClonesArray * fPointsBC2
TClonesArray * fPointsSI
Input array of CbmStsDigi from GEM.
virtual void SetParContainers()
Get parameter containers.
void SetFrontNoiseWidth(Double_t frontNoW=0.)
void SetGeoFile(TString geoFile)
void ProduceHitResponse(CbmStsSensor *sensor)
CbmBmnStsDigitize(const CbmBmnStsDigitize &)
CbmStsDigiPar * fDigiPar
Geometry parameter container.
TClonesArray * fPointsBC1
Output array of raw bmn EventHeader.
void SetBackThreshold(Double_t backThr=0.)
CbmStsDigiScheme * fDigiScheme
Digitisation parameter container.
virtual InitStatus Init()
Intialisation.
void FindFiredStrips(CbmStsPoint *pnt, Int_t &nofStr, Int_t *&strips, Double_t *&signals, Int_t side)
TClonesArray * fEventHeader
Output array of CbmStsDigiMatches.
static const Int_t nStaGEMs
TClonesArray * fDigiMatches
Output array of CbmStsDigi.
void SetBackNofElPerAdc(Double_t backMS=0.)
map< CbmStsSensor *, set< Int_t > > fPointMap
void SetBackNoiseWidth(Double_t backNoW=0.)
TClonesArray * fPointsVeto
map< Int_t, Double_t > digiMap[nStaGEMs][2]
TClonesArray * fDigisCSC
Output array of CbmStsDigi.
Float_t occupancy[20][1000][20]
sensor points
virtual InitStatus ReInit()
Reinitialisation.
void MakeSets()
Make sensorwise set for points.
CbmBmnStsDigitize operator=(const CbmBmnStsDigitize &)
map< Int_t, Double_t >::iterator mit