BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmStsDigitizeTb.cxx
Go to the documentation of this file.
1
/** @file CbmStsDigitizeTb.cxx
2
** @author Volker Friese <v.friese@gsi.de>
3
** @date 10 December 2012
4
*/
5
6
// Includes from ROOT
7
#include "
TClonesArray.h
"
8
#include "
TF1.h
"
9
#include "
TGeoManager.h
"
10
#include "
TGeoNode.h
"
11
#include "
TMath.h
"
12
#include "
TObjArray.h
"
13
#include "
TRandom3.h
"
14
15
// Includes from base
16
#include "CbmDaqBuffer.h"
17
#include "CbmMCBuffer.h"
18
#include "FairRootManager.h"
19
#include "FairRunAna.h"
20
#include "FairRuntimeDb.h"
21
22
// Includes from STS
23
#include "
CbmGeoStsPar.h
"
24
#include "
CbmStsDigiLight.h
"
25
#include "
CbmStsDigiMatch.h
"
26
#include "
CbmStsDigiPar.h
"
27
#include "
CbmStsDigiScheme.h
"
28
#include "
CbmStsDigitizeTb.h
"
29
#include "CbmStsPoint.h"
30
#include "
CbmStsSector.h
"
31
#include "
CbmStsSensor.h
"
32
#include "
CbmStsStation.h
"
33
34
#include <iomanip>
35
#include <iostream>
36
#include <map>
37
#include <vector>
38
using
std::cerr;
39
using
std::cout;
40
using
std::endl;
41
using
std::fixed;
42
using
std::flush;
43
using
std::ios_base;
44
using
std::left;
45
using
std::map;
46
using
std::pair;
47
using
std::right;
48
using
std::set;
49
using
std::setprecision;
50
using
std::setw;
51
using
std::vector;
52
53
// ----- Default constructor ------------------------------------------
54
CbmStsDigitizeTb::CbmStsDigitizeTb
()
55
:
FairTask
(
"StsDigitize"
, 1)
56
,
fGeoPar
(NULL)
57
,
fDigiPar
(NULL)
58
,
fDigiScheme
(NULL)
59
,
fPoints
(NULL)
60
,
fDigis
(NULL)
61
,
fDigiMatches
(NULL)
62
,
fNDigis
(0)
63
,
fNMulti
(0)
64
,
fNEvents
(0)
65
,
fNPoints
(0)
66
,
fNOutside
(0)
67
,
fNDigisFront
(0)
68
,
fNDigisBack
(0)
69
,
fTime
(0.)
70
,
fStepSize
(0.)
71
,
fTimer
()
72
,
fRealistic
(
kFALSE
)
73
,
fPairCreationEnergy
(0.)
74
,
fFNoiseWidth
(0.1)
75
,
fBNoiseWidth
(0.1)
76
,
fStripDeadTime
(10)
77
,
fQMax
(0.)
78
,
fThreshold
(0.)
79
,
fNAdcBits
(0)
80
,
fNAdcChannels
(0.)
81
,
fFChannelPointsMap
()
82
,
fBChannelPointsMap
()
83
{
84
// fDigiScheme = new CbmStsDigiScheme();
85
fDigiScheme
=
CbmStsDigiScheme::Instance
();
86
Reset
();
87
}
88
// -------------------------------------------------------------------------
89
90
// ----- Destructor ----------------------------------------------------
91
CbmStsDigitizeTb::~CbmStsDigitizeTb
()
92
{
93
if
(
fGeoPar
)
94
delete
fGeoPar
;
95
if
(
fDigiPar
)
96
delete
fDigiPar
;
97
if
(
fDigis
) {
98
fDigis
->Delete();
99
delete
fDigis
;
100
}
101
if
(
fDigiMatches
) {
102
fDigiMatches
->Delete();
103
delete
fDigiMatches
;
104
}
105
// if ( fDigiScheme ) delete fDigiScheme; // M&SG HEPL: Deleting singleton is safe at the end of a whole program
106
// only!
107
Reset
();
108
}
109
// -------------------------------------------------------------------------
110
111
// ===== Perform digitisation of one StsPoint ==========================
112
void
CbmStsDigitizeTb::DigitizePoint
(
const
CbmStsPoint
* point,
Int_t
& nFront,
Int_t
& nBack)
113
{
114
115
// Reset counters
116
nFront = nBack = 0;
117
118
// Get corresponding node from GeoManager
119
Double_t
xPoint = 0.5 * (point->
GetXOut
() + point->
GetXIn
());
120
Double_t
yPoint = 0.5 * (point->
GetYOut
() + point->
GetYIn
());
121
Double_t
zPoint = 0.5 * (point->
GetZOut
() + point->
GetZIn
());
122
gGeoManager
->FindNode(xPoint, yPoint, zPoint);
123
TGeoNode
* curNode =
gGeoManager
->GetCurrentNode();
124
125
// --- Get corresponding sensor from StsDigiScheme
126
CbmStsSensor
* sensor = NULL;
127
if
(
fDigiScheme
->IsNewGeometry()) {
128
TString
curPath =
fDigiScheme
->GetCurrentPath();
129
sensor =
fDigiScheme
->GetSensorByName(curPath);
130
}
else
131
sensor =
fDigiScheme
->GetSensorByName(curNode->
GetName
());
132
if
(!sensor) {
133
LOG(debug) << fName <<
": node "
<<
fDigiScheme
->GetCurrentPath() <<
" not found in digi scheme!"
;
134
LOG(debug2) <<
"\t"
<<
"MCPoint information:"
;
135
point->
Info
();
136
return
;
137
}
138
139
// Length of trajectory in the sensor
140
Double_t
deltaX = point->
GetXOut
() - point->
GetXIn
();
141
Double_t
deltaY = point->
GetYOut
() - point->
GetYIn
();
142
Double_t
deltaZ = point->
GetZOut
() - point->
GetZIn
();
143
Double_t
lTraj =
TMath::Sqrt
(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ);
144
Int_t
nSteps =
Int_t
(lTraj /
fStepSize
) + 1;
145
146
// Total and fractional charge
147
Double_t
charge = point->GetEnergyLoss() /
fPairCreationEnergy
;
148
Double_t
stepCharge = charge / (nSteps + 1);
149
150
// Arrays for the strip charges
151
map<Int_t, Double_t> frontSignals;
152
map<Int_t, Double_t> backSignals;
153
154
// Produce charge on the sensor strips
155
// The trajectory is decomposed into steps of size fStepSize. The total
156
// energy loss is equally divided into the steps and projected to the
157
// readout strips.
158
Double_t
xPair = point->
GetXIn
();
159
Double_t
yPair = point->
GetYIn
();
160
Double_t
zPair = point->
GetZIn
();
161
for
(
Int_t
iStep = 0; iStep <= nSteps; iStep++) {
162
Int_t
iFChan = sensor->
GetFrontChannel
(xPair, yPair, zPair);
163
frontSignals[iFChan] += stepCharge;
164
Int_t
iBChan = sensor->
GetBackChannel
(xPair, yPair, zPair);
165
backSignals[iBChan] += stepCharge;
166
xPair += deltaX /
Double_t
(nSteps);
167
yPair += deltaY /
Double_t
(nSteps);
168
zPair += deltaZ /
Double_t
(nSteps);
169
}
170
171
// Digitise the charge on the front side strips
172
map<Int_t, Double_t>::iterator it;
173
for
(it = frontSignals.begin(); it != frontSignals.end(); it++) {
174
if
((*it).second <
fThreshold
)
175
continue
;
176
Int_t
iAdc = -1;
177
if
((*it).second >=
fQMax
)
178
iAdc =
fNAdcChannels
- 1;
179
else
180
iAdc =
Int_t
((*it).second /
fQMax
) *
fNAdcChannels
;
181
CbmStsDigiLight
* digi =
new
CbmStsDigiLight
(sensor->
GetStationNr
(),
// station number
182
sensor->
GetSectorNr
(),
// sector number
183
0,
// front side
184
(*it).first,
// channel number
185
iAdc,
// ADC channel
186
point->GetTime());
// time
187
CbmDaqBuffer::Instance()->InsertData(digi);
188
nFront++;
189
}
190
191
// Digitise the charge on the back side strips
192
for
(it = backSignals.begin(); it != backSignals.end(); it++) {
193
if
((*it).second <
fThreshold
)
194
continue
;
195
Int_t
iAdc = -1;
196
if
((*it).second >=
fQMax
)
197
iAdc =
fNAdcChannels
- 1;
198
else
199
iAdc =
Int_t
((*it).second /
fQMax
) *
fNAdcChannels
;
200
CbmStsDigiLight
* digi =
new
CbmStsDigiLight
(sensor->
GetStationNr
(),
// station number
201
sensor->
GetSectorNr
(),
// sector number
202
1,
// back side
203
(*it).first,
// channel number
204
iAdc,
// ADC channel
205
point->GetTime());
// time
206
CbmDaqBuffer::Instance()->InsertData(digi);
207
nBack++;
208
}
209
210
LOG(debug1) << fName <<
": point ( "
<< fixed << setprecision(4) << xPoint <<
", "
<< yPoint <<
", "
<< zPoint
211
<<
") cm, t = "
<< setprecision(3) << point->GetTime() <<
" ns, digis: "
<< nFront <<
" front, "
212
<< nBack <<
" back"
;
213
}
214
// ==========================================================================
215
216
// ===== Intialisation (private) =========================================
217
InitStatus
CbmStsDigitizeTb::Init
()
218
{
219
220
// Check for presence of MCBuffer and DaqBuffer
221
if
(!(CbmMCBuffer::Instance() && CbmDaqBuffer::Instance())) {
222
LOG(fatal) <<
"No MCBuffer or DaqBuffer present!"
;
223
return
kFATAL;
224
}
225
226
// Pair creation energy in GeV
227
fPairCreationEnergy
= 3.68e-9;
228
229
// Number of ADC channels
230
fNAdcChannels
= 1 << (
fNAdcBits
+ 1);
231
232
// Step size for ionisation points
233
fStepSize
= 0.001;
234
235
// Build digitisation scheme
236
if
(!
fDigiScheme
->Init(
fGeoPar
,
fDigiPar
)) {
237
LOG(error) <<
"Error in building STS digitisation scheme"
;
238
return
kFATAL;
239
}
240
241
if
(fVerbose == 1 || fVerbose == 2)
242
fDigiScheme
->Print(
kFALSE
);
243
else
if
(fVerbose > 2)
244
fDigiScheme
->Print(
kTRUE
);
245
cout <<
"-I- "
<< fName <<
"::Init: "
246
<<
"STS digitisation scheme succesfully initialised"
<< endl;
247
cout <<
" Stations: "
<<
fDigiScheme
->GetNStations() <<
", Sectors: "
<<
fDigiScheme
->GetNSectors()
248
<<
", Channels: "
<<
fDigiScheme
->GetNChannels() << endl;
249
250
return
kSUCCESS;
251
}
252
// ==========================================================================
253
254
// ===== Task execution =================================================
255
void
CbmStsDigitizeTb::Exec
(
Option_t
* opt)
256
{
257
258
fTimer
.Start();
259
260
// Counters
261
Int_t
nPoints = 0;
262
Int_t
nDigiF = 0;
263
Int_t
nDigiB = 0;
264
Int_t
nDigiAll = 0;
265
Int_t
nOut = 0;
266
Double_t
tStart = -1.;
267
Double_t
tStop = -1.;
268
269
// Loop over StsPoints from MCBuffer
270
const
CbmStsPoint
* point =
dynamic_cast<
const
CbmStsPoint
*
>
(CbmMCBuffer::Instance()->GetNextPoint(
kGEM
));
271
while
(point) {
272
273
DigitizePoint
(point, nDigiF, nDigiB);
274
275
// Increment counters
276
nPoints++;
277
if
(!(nDigiF + nDigiB))
278
nOut++;
// Points outside active sensors
279
nDigiAll += nDigiF;
280
nDigiAll += nDigiB;
281
fNDigisFront
+= nDigiF;
282
fNDigisBack
+= nDigiB;
283
tStop = point->GetTime();
284
if
(nPoints == 1)
285
tStart = tStop;
286
287
// Next StsPoint
288
point =
dynamic_cast<
const
CbmStsPoint
*
>
(CbmMCBuffer::Instance()->GetNextPoint(
kGEM
));
289
}
290
291
fTimer
.Stop();
292
LOG(info) << fName <<
": "
<< fixed << setprecision(4) <<
fTimer
.RealTime() <<
" s, "
<< nPoints
293
<<
" points (outside: "
<< nOut <<
"), "
<< nDigiAll <<
" digis"
;
294
if
(nPoints)
295
LOG(info) <<
", time "
<< setprecision(3) << tStart <<
" ns to "
<< tStop <<
" ns"
;
296
LOG(info);
297
298
fNEvents
+= 1.;
299
fTime
+=
fTimer
.RealTime();
300
fNPoints
+= nPoints;
301
fNOutside
+= nOut;
302
}
303
// ==========================================================================
304
305
// ----- Private method SetParContainers -------------------------------
306
void
CbmStsDigitizeTb::SetParContainers
()
307
{
308
309
// Get run and runtime database
310
FairRunAna* run = FairRunAna::Instance();
311
if
(!run)
312
Fatal
(
"SetParContainers"
,
"No analysis run"
);
313
314
FairRuntimeDb* db = run->GetRuntimeDb();
315
if
(!db)
316
Fatal
(
"SetParContainers"
,
"No runtime database"
);
317
318
// Get STS geometry parameter container
319
fGeoPar
= (
CbmGeoStsPar
*)db->getContainer(
"CbmGeoStsPar"
);
320
321
// Get STS digitisation parameter container
322
fDigiPar
= (
CbmStsDigiPar
*)db->getContainer(
"CbmStsDigiPar"
);
323
}
324
// -------------------------------------------------------------------------
325
326
// ----- Private method ReInit -----------------------------------------
327
InitStatus
CbmStsDigitizeTb::ReInit
()
328
{
329
330
// Clear digitisation scheme
331
fDigiScheme
->Clear();
332
333
// Build new digitisation scheme
334
if
(
fDigiScheme
->Init(
fGeoPar
,
fDigiPar
)) {
335
return
kSUCCESS;
336
}
337
338
return
kERROR;
339
}
340
// -------------------------------------------------------------------------
341
342
// ----- Private method Reset ------------------------------------------
343
void
CbmStsDigitizeTb::Reset
()
344
{
345
// fNPoints = fNOutside = fNDigisFront = fNDigisBack = fTime = 0.;
346
fNDigis
=
fNMulti
= 0;
347
fFChannelPointsMap
.clear();
348
fBChannelPointsMap
.clear();
349
// if ( fDigis ) fDigis->Clear();
350
// if ( fDigiMatches ) fDigiMatches->Clear();
351
if
(
fDigis
)
352
fDigis
->Delete();
353
if
(
fDigiMatches
)
354
fDigiMatches
->Delete();
355
}
356
// -------------------------------------------------------------------------
357
358
// ----- Virtual method Finish -----------------------------------------
359
void
CbmStsDigitizeTb::Finish
()
360
{
361
Exec
(
""
);
// Digitise the remaining points in the MCBuffer
362
fNEvents
-= 1;
// Correct for extra call to Exec
363
LOG(info);
364
LOG(info) <<
"============================================================"
;
365
LOG(info) <<
"===== "
<< fName <<
": Run summary "
;
366
LOG(info) <<
"===== "
;
367
LOG(info) <<
"===== Events processed : "
<< setw(8) <<
fNEvents
;
368
// LOG(info).setf(ios_base::fixed, ios_base::floatfield);
369
LOG(info) <<
"===== Real time per event : "
<< setw(8) << setprecision(4) <<
fTime
/
fNEvents
<<
" s"
;
370
LOG(info) <<
"===== StsPoints per event : "
<< setw(8) << setprecision(2) <<
fNPoints
/
fNEvents
;
371
LOG(info) <<
"===== Outside hits per event : "
<< setw(8) << setprecision(2) <<
fNOutside
/
fNEvents
<<
" = "
372
<< setw(6) << setprecision(2) <<
fNOutside
/
fNPoints
* 100. <<
" %"
;
373
LOG(info) <<
"===== Front digis per point : "
<< setw(8) << setprecision(2)
374
<<
fNDigisFront
/ (
fNPoints
-
fNOutside
);
375
LOG(info) <<
"===== Back digis per point : "
<< setw(8) << setprecision(2)
376
<<
fNDigisBack
/ (
fNPoints
-
fNOutside
);
377
LOG(info) <<
"============================================================"
;
378
}
379
// -------------------------------------------------------------------------
CbmStsDigitizeTb.h
Int_t
int Int_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
TClonesArray.h
Fatal
void Fatal(const char *location, const char *msgfmt,...)
TF1.h
TGeoManager.h
gGeoManager
R__EXTERN TGeoManager * gGeoManager
TGeoNode.h
TMath.h
TObjArray.h
TRandom3.h
kGEM
@ kGEM
Definition
BmnDetectorList.h:15
CbmGeoStsPar
Definition
CbmGeoStsPar.h:8
CbmStsDigiLight
CbmStsDigiLight.h.
Definition
CbmStsDigiLight.h:34
CbmStsDigiPar
Definition
CbmStsDigiPar.h:31
CbmStsDigiScheme::Instance
static CbmStsDigiScheme * Instance(int version=1)
Definition
CbmStsDigiScheme.cxx:65
CbmStsDigitizeTb::fFChannelPointsMap
map< Int_t, set< Int_t > > fFChannelPointsMap
Number of ADC channels.
Definition
CbmStsDigitizeTb.h:100
CbmStsDigitizeTb::fDigis
TClonesArray * fDigis
Input array of CbmStsPoint.
Definition
CbmStsDigitizeTb.h:59
CbmStsDigitizeTb::fNDigisFront
Double_t fNDigisFront
Definition
CbmStsDigitizeTb.h:69
CbmStsDigitizeTb::fFNoiseWidth
Double_t fFNoiseWidth
Definition
CbmStsDigitizeTb.h:81
CbmStsDigitizeTb::Init
virtual InitStatus Init()
Intialisation.
Definition
CbmStsDigitizeTb.cxx:217
CbmStsDigitizeTb::fQMax
Double_t fQMax
Definition
CbmStsDigitizeTb.h:87
CbmStsDigitizeTb::fNEvents
Double_t fNEvents
Definition
CbmStsDigitizeTb.h:66
CbmStsDigitizeTb::fNAdcBits
Int_t fNAdcBits
Threshold charge in e.
Definition
CbmStsDigitizeTb.h:89
CbmStsDigitizeTb::fPairCreationEnergy
Double_t fPairCreationEnergy
Definition
CbmStsDigitizeTb.h:79
CbmStsDigitizeTb::~CbmStsDigitizeTb
virtual ~CbmStsDigitizeTb()
Destructor.
Definition
CbmStsDigitizeTb.cxx:91
CbmStsDigitizeTb::CbmStsDigitizeTb
CbmStsDigitizeTb()
Default constructor.
Definition
CbmStsDigitizeTb.cxx:54
CbmStsDigitizeTb::fDigiScheme
CbmStsDigiScheme * fDigiScheme
Digitisation parameter container.
Definition
CbmStsDigitizeTb.h:57
CbmStsDigitizeTb::Finish
virtual void Finish()
Virtual method Finish.
Definition
CbmStsDigitizeTb.cxx:359
CbmStsDigitizeTb::fGeoPar
CbmGeoStsPar * fGeoPar
Definition
CbmStsDigitizeTb.h:55
CbmStsDigitizeTb::fNPoints
Double_t fNPoints
Definition
CbmStsDigitizeTb.h:67
CbmStsDigitizeTb::fThreshold
Double_t fThreshold
Dynamic range in e.
Definition
CbmStsDigitizeTb.h:88
CbmStsDigitizeTb::fNAdcChannels
Double_t fNAdcChannels
Number of bits for ADC.
Definition
CbmStsDigitizeTb.h:90
CbmStsDigitizeTb::fBChannelPointsMap
map< Int_t, set< Int_t > > fBChannelPointsMap
Definition
CbmStsDigitizeTb.h:101
CbmStsDigitizeTb::fNOutside
Double_t fNOutside
Definition
CbmStsDigitizeTb.h:68
CbmStsDigitizeTb::fTime
Double_t fTime
Definition
CbmStsDigitizeTb.h:71
CbmStsDigitizeTb::fDigiMatches
TClonesArray * fDigiMatches
Output array of CbmStsDigi.
Definition
CbmStsDigitizeTb.h:60
CbmStsDigitizeTb::fBNoiseWidth
Double_t fBNoiseWidth
Definition
CbmStsDigitizeTb.h:82
CbmStsDigitizeTb::fTimer
TStopwatch fTimer
Step size for ionisation points.
Definition
CbmStsDigitizeTb.h:76
CbmStsDigitizeTb::fNDigis
Int_t fNDigis
Output array of CbmStsDigiMatches.
Definition
CbmStsDigitizeTb.h:63
CbmStsDigitizeTb::fDigiPar
CbmStsDigiPar * fDigiPar
Geometry parameter container.
Definition
CbmStsDigitizeTb.h:56
CbmStsDigitizeTb::SetParContainers
virtual void SetParContainers()
Get parameter containers.
Definition
CbmStsDigitizeTb.cxx:306
CbmStsDigitizeTb::fRealistic
Bool_t fRealistic
Definition
CbmStsDigitizeTb.h:78
CbmStsDigitizeTb::fStripDeadTime
Double_t fStripDeadTime
Definition
CbmStsDigitizeTb.h:84
CbmStsDigitizeTb::ReInit
virtual InitStatus ReInit()
Re-initialisation.
Definition
CbmStsDigitizeTb.cxx:327
CbmStsDigitizeTb::fStepSize
Double_t fStepSize
Definition
CbmStsDigitizeTb.h:74
CbmStsDigitizeTb::fNDigisBack
Double_t fNDigisBack
Definition
CbmStsDigitizeTb.h:70
CbmStsDigitizeTb::Reset
void Reset()
Reset eventwise counters.
Definition
CbmStsDigitizeTb.cxx:343
CbmStsDigitizeTb::Exec
virtual void Exec(Option_t *opt)
Execution.
Definition
CbmStsDigitizeTb.cxx:255
CbmStsDigitizeTb::fPoints
TClonesArray * fPoints
Digitisation scheme.
Definition
CbmStsDigitizeTb.h:58
CbmStsDigitizeTb::DigitizePoint
void DigitizePoint(const CbmStsPoint *point, Int_t &nFront, Int_t &nBack)
Perform digitisation of one MCPoint.
Definition
CbmStsDigitizeTb.cxx:112
CbmStsDigitizeTb::fNMulti
Int_t fNMulti
Definition
CbmStsDigitizeTb.h:64
CbmStsPoint
Definition
CbmStsPoint.h:23
CbmStsPoint::GetXIn
Double_t GetXIn() const
Accessors.
Definition
CbmStsPoint.h:64
CbmStsPoint::GetZOut
Double_t GetZOut() const
Definition
CbmStsPoint.h:69
CbmStsPoint::GetYOut
Double_t GetYOut() const
Definition
CbmStsPoint.h:68
CbmStsPoint::GetZIn
Double_t GetZIn() const
Definition
CbmStsPoint.h:66
CbmStsPoint::GetYIn
Double_t GetYIn() const
Definition
CbmStsPoint.h:65
CbmStsPoint::GetXOut
Double_t GetXOut() const
Definition
CbmStsPoint.h:67
CbmStsPoint::Info
void Info() const
Definition
CbmStsPoint.cxx:79
CbmStsSensor
Definition
CbmStsSensor.h:44
CbmStsSensor::GetFrontChannel
Int_t GetFrontChannel(Double_t x, Double_t y, Double_t z, Double_t &dPitch)
Definition
CbmStsSensor.cxx:570
CbmStsSensor::GetBackChannel
Int_t GetBackChannel(Double_t x, Double_t y, Double_t z, Double_t &dPitch)
Definition
CbmStsSensor.cxx:611
CbmStsSensor::GetSectorNr
Int_t GetSectorNr() const
Definition
CbmStsSensor.h:97
CbmStsSensor::GetStationNr
Int_t GetStationNr() const
Definition
CbmStsSensor.h:96
FairTask
TGeoNode
TNamed::GetName
const char * GetName() const override
TString
CbmGeoStsPar.h
CbmStsDigiLight.h
CbmStsDigiMatch.h
CbmStsDigiPar.h
CbmStsDigiScheme.h
CbmStsSector.h
CbmStsSensor.h
CbmStsStation.h
TMath::Sqrt
Double_t Sqrt(Double_t x)
detectors
sts
CbmStsDigitizeTb.cxx
Generated on
for BmnRoot by
1.17.0