BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
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/** CbmStsDigitise
9 *@author Volker Friese <v.friese@gsi.de>
10 *@since 30.08.06
11 *@version 1.0
12 **
13 ** CBM task class for digitising STS
14 ** Task level SIM
15 ** Produces objects of type CbmStsDigi out of CbmStsPoint.
16 **/
17
18#ifndef CBMSTSDIGITIZE_H
19#define CBMSTSDIGITIZE_H 1
20
21#include "FairTask.h"
22#include "TStopwatch.h"
23
24#include <set>
25
26using std::map;
27using std::pair;
28using std::set;
29
30class TClonesArray;
31class CbmGeoStsPar;
32class CbmStsDigiPar;
34class CbmStsSensor;
35class CbmStsStation;
36class CbmMatch;
37
38class CbmStsPoint;
39
40class CbmStsDigitize : public FairTask
41{
42
43 public:
44 /** Default constructor **/
46
47 /** Standard constructor **/
49
50 /** Constructor with name **/
51 CbmStsDigitize(const char* name, Int_t iVerbose);
52
53 /** Destructor **/
54 virtual ~CbmStsDigitize();
55
56 void SetStep(Double_t tStep) { fStep = tStep; }
57
58 /** Execution **/
59 virtual void Exec(Option_t* opt);
60
61 /** Virtual method Finish **/
62 virtual void Finish();
63
64 virtual void SetRealisticResponse(Bool_t real = kTRUE) { fRealistic = real; }
65
66 void FindFiredStrips(CbmStsPoint* pnt, Int_t& nofStr, Int_t*& strips, Double_t*& signals, Int_t side);
70 // void ProduceHitResponseFast(CbmStsSensor* sensor); //AZ
71
72 void SetFrontThreshold(Double_t frontThr = 0.) { fFThreshold = frontThr; }
73 void SetBackThreshold(Double_t backThr = 0.) { fBThreshold = backThr; }
74 void SetFrontNoiseWidth(Double_t frontNoW = 0.) { fFNoiseWidth = frontNoW; }
75 void SetBackNoiseWidth(Double_t backNoW = 0.) { fBNoiseWidth = backNoW; }
76
77 void SetFrontNofBits(Int_t frontNB = 0) { fFNofBits = frontNB; }
78 void SetBackNofBits(Int_t backNB = 0) { fBNofBits = backNB; }
79 void SetFrontNofElPerAdc(Double_t frontMS = 0.) { fFNofElPerAdc = frontMS; }
80 void SetBackNofElPerAdc(Double_t backMS = 0.) { fBNofElPerAdc = backMS; }
81
82 void SetStripDeadTime(Double_t StripDeadTime = 0.) { fStripDeadTime = StripDeadTime; }
83 void SetLoss2Signal(Double_t coef) { fEnergyLossToSignal = coef; } // AZ
84 void ApplyAlignment(); // AZ
85 Int_t GetNofModules(TGeoNode* station); // AZ
86 void CreateDigi(Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const CbmMatch& match) { ; } // AZ
87 Int_t GetELossModel() const { return 2; } // AZ
88
89 private:
90 CbmGeoStsPar* fGeoPar; /** Geometry parameter container **/
91 CbmStsDigiPar* fDigiPar; /** Digitisation parameter container **/
92 CbmStsDigiScheme* fDigiScheme; /** Digitisation scheme **/
93 TClonesArray* fPointsSi; /** Input array of CbmSiliconPoint AZ-280322**/
94 TClonesArray* fPoints; /** Input array of CbmStsPoint **/
95 TClonesArray* fDigis; /** Output array of CbmStsDigi **/
96 TClonesArray* fDigiMatches; /** Output array of CbmStsDigiMatches**/
97 TClonesArray* fMCTracks; /** AZ - Input array of CbmMCTracks**/
98
99 // statistics
102
108
109 // settings
111
113
116
121
123
130
133
134 // map of the point indices contributing to a fired strip
135 map<Int_t, set<Int_t>> fFChannelPointsMap;
136 map<Int_t, set<Int_t>> fBChannelPointsMap;
137
138 map<CbmStsSensor*, set<Int_t>> fPointMap; /** sensor points **/
139 FairTask* fastDig; // AZ
140 Float_t occupancy[20][1000][20];
141
142 /** Make sensorwise set for points **/
143 void MakeSets();
144 void MakeSets1();
145
146 /** Get parameter containers **/
147 virtual void SetParContainers();
148
149 /** Intialisation **/
150 virtual InitStatus Init();
151
152 /** Reinitialisation **/
153 virtual InitStatus ReInit();
154
155 /** Reset eventwise counters **/
156 void Reset();
157
158 /** AZ Check if particle goes thru the spacer (dead space) **/
159 Bool_t CrossSpacer(const TGeoNode* node, const CbmStsPoint* point);
161
164
166};
167
168#endif
bool Bool_t
unsigned short UShort_t
int Int_t
float Float_t
double Double_t
long long Long64_t
constexpr Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
void Reset()
Reset eventwise counters.
CbmStsDigiPar * fDigiPar
Geometry parameter container.
TClonesArray * fPointsSi
Digitisation scheme.
void SetLoss2Signal(Double_t coef)
CbmStsDigitize(const char *name, Int_t iVerbose)
Constructor with name.
void ApplyAlignment()
Bool_t CrossSpacer(const TGeoNode *node, const CbmStsPoint *point)
AZ Check if particle goes thru the spacer (dead space).
CbmStsDigitize()
Default constructor.
TClonesArray * fPoints
Input array of CbmSiliconPoint AZ-280322.
void ProduceHitResponseSi(CbmStsSensor *sensor)
map< Int_t, set< Int_t > > fFChannelPointsMap
Double_t GetNumberOfClusters(Double_t beta, Double_t gamma, Double_t charge, Double_t p0, Double_t p1)
Int_t GetELossModel() const
void ProduceHitResponseAZ(CbmStsSensor *sensor)
Double_t fFNofElPerAdc
CbmGeoStsPar * fGeoPar
TStopwatch fTimer
Float_t occupancy[20][1000][20]
TClonesArray * fDigiMatches
Output array of CbmStsDigi.
Double_t fFNoiseWidth
virtual void SetParContainers()
Get parameter containers.
TClonesArray * fMCTracks
Output array of CbmStsDigiMatches.
CbmStsDigitize(const CbmStsDigitize &)
Double_t fNDigisFront
Double_t * fStripSignalF
Double_t * fStripSignalB
TClonesArray * fDigis
Input array of CbmStsPoint.
void SetBackNofElPerAdc(Double_t backMS=0.)
void SetBackNoiseWidth(Double_t backNoW=0.)
void ProduceHitResponse(CbmStsSensor *sensor)
map< CbmStsSensor *, set< Int_t > > fPointMap
FairTask * fastDig
sensor points
Int_t fNDigis
AZ - Input array of CbmMCTracks.
CbmStsDigitize(Int_t iVerbose)
Standard constructor.
void SetFrontNofElPerAdc(Double_t frontMS=0.)
virtual void Finish()
Virtual method Finish.
virtual InitStatus ReInit()
Reinitialisation.
void SetFrontNoiseWidth(Double_t frontNoW=0.)
Double_t fBNofElPerAdc
virtual InitStatus Init()
Intialisation.
void CreateDigi(Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const CbmMatch &match)
Double_t fEnergyLossToSignal
void SetStep(Double_t tStep)
void SetFrontThreshold(Double_t frontThr=0.)
virtual void Exec(Option_t *opt)
Execution.
virtual void SetRealisticResponse(Bool_t real=kTRUE)
map< Int_t, set< Int_t > > fBChannelPointsMap
Int_t GetNofModules(TGeoNode *station)
CbmStsDigiScheme * fDigiScheme
Digitisation parameter container.
virtual ~CbmStsDigitize()
Destructor.
Double_t fBNoiseWidth
void SetBackNofBits(Int_t backNB=0)
CbmStsDigitize operator=(const CbmStsDigitize &)
void SetBackThreshold(Double_t backThr=0.)
void SetFrontNofBits(Int_t frontNB=0)
Double_t fStripDeadTime
void SetStripDeadTime(Double_t StripDeadTime=0.)
void FindFiredStrips(CbmStsPoint *pnt, Int_t &nofStr, Int_t *&strips, Double_t *&signals, Int_t side)
void MakeSets()
Make sensorwise set for points.
double beta(double x, double y)