CbmRoot
CbmTofCreateDigiPar.cxx
Go to the documentation of this file.
1 #include "CbmTofCreateDigiPar.h"
2 
3 #include "CbmTofCell.h" // for CbmTofCell
4 #include "CbmTofDigiPar.h" // for CbmTofDigiPar
5 #include "CbmTofGeoHandler.h" // for CbmTofGeoHandler, k07a, k12b, k14a
6 
7 #include <FairLogger.h> // for LOG, Logger
8 #include <FairRootManager.h> // for FairRootManager
9 #include <FairRunAna.h> // for FairRunAna
10 #include <FairRuntimeDb.h> // for FairRuntimeDb
11 #include <FairTask.h> // for FairTask, InitStatus, kSUCCESS
12 
13 #include <TArrayD.h> // for TArrayD
14 #include <TArrayI.h> // for TArrayI
15 #include <TGeoManager.h> // for TGeoManager, gGeoManager
16 #include <TGeoNode.h> // for TGeoNode
17 #include <TObjArray.h> // for TObjArray
18 #include <TObject.h> // for TObject
19 
20 #include <utility> // for pair
21 
22 // ---- Default constructor -------------------------------------------
24  : FairTask("TofCreateDigiPar")
25  , fSMType(-1)
26  , fSModule(-1)
27  , fCounter(-1)
28  , fGap(-1)
29  , fCell(-1)
30  , fRegion(-1)
31  , fSizex(-1.)
32  , fSizey(-1.)
33  , fX(-1.)
34  , fY(-1.)
35  , fZ(-1.)
36  , fDetID(-1)
37  , fCellID(-1)
38  , fCellMap()
39  , fCellMapIt()
40  , fDigiPar(nullptr)
41  , fGeoHandler(new CbmTofGeoHandler()) {}
42 // --------------------------------------------------------------------
43 
44 // ---- Constructor ----------------------------------------------------
46  const char* /*title*/)
47  : FairTask(name)
48  , fSMType(-1)
49  , fSModule(-1)
50  , fCounter(-1)
51  , fGap(-1)
52  , fCell(-1)
53  , fRegion(-1)
54  , fSizex(-1.)
55  , fSizey(-1.)
56  , fX(-1.)
57  , fY(-1.)
58  , fZ(-1.)
59  , fDetID()
60  , fCellID(-1)
61  , fCellMap()
62  , fCellMapIt()
63  , fDigiPar(nullptr)
64  , fGeoHandler(new CbmTofGeoHandler()) {}
65 // --------------------------------------------------------------------
66 
67 // ---- Destructor ----------------------------------------------------
69 // --------------------------------------------------------------------
70 
71 // ---- Initialisation ----------------------------------------------
73 
74  LOG(info) << " * CbmTofCreateDigiPar:: SetParContainers() ";
75 
76  // Get Base Container
77  FairRunAna* ana = FairRunAna::Instance();
78  FairRuntimeDb* rtdb = ana->GetRuntimeDb();
79 
80  fDigiPar = (CbmTofDigiPar*) (rtdb->getContainer("CbmTofDigiPar"));
81 
82  LOG(info) << " * CbmTofCreateDigiPar:: fDigiPar " << fDigiPar;
83 }
84 // --------------------------------------------------------------------
85 
86 // ---- ReInit -------------------------------------------------------
88 
89  LOG(info) << " * CbmTofCreateDigiPar * :: ReInit() ";
90 
91  // Get Base Container
92  FairRunAna* ana = FairRunAna::Instance();
93  FairRuntimeDb* rtdb = ana->GetRuntimeDb();
94 
95  fDigiPar = (CbmTofDigiPar*) (rtdb->getContainer("CbmTofDigiPar"));
96 
97  return kSUCCESS;
98 }
99 // --------------------------------------------------------------------
100 
101 // ---- Init ----------------------------------------------------------
103 
104  Int_t geoVersion = fGeoHandler->Init();
105 
106  // fModInfoMap = GetModuleInfoMap();
107 
108  LOG(info) << " * CbmTofCreateDigiPar * :: Init() ";
109 
110  FairRootManager* ioman = FairRootManager::Instance();
111  if (!ioman) LOG(fatal) << "No FairRootManager found";
112 
113 
114  if (k14a == geoVersion) {
115  LOG(info) << "Will now create digitization parameters for root geometry.";
117  }
118  if (k12b == geoVersion) {
119  LOG(info) << "Will now create digitization parameters for root geometry.";
121  }
122  if (k07a == geoVersion) {
123  LOG(info) << "Will now create digitization parameters for ascii geometry.";
125  }
126 
127  // fill Transformation matrices for each cell
128  std::map<Int_t, TGeoNode*> nodemap;
129  for (Int_t iCell = 0; iCell < fDigiPar->GetNrOfModules(); iCell++) {
130  Int_t iAddr = fDigiPar->GetCellId(iCell);
132  gGeoManager->FindNode(
134  TGeoNode* tGeoNode = gGeoManager->GetCurrentNode();
135  nodemap.insert(std::pair<Int_t, TGeoNode*>(iAddr, tGeoNode));
136  LOG(debug) << Form(
137  "Digipar for %d, addr 0x%08x: Node=%p", iCell, iAddr, tGeoNode);
138  }
139  fDigiPar->SetNodeMap(nodemap);
140 
141  return kSUCCESS;
142 }
143 // --------------------------------------------------------------------
145 
146  LOG(info) << " * CbmTofCreateDigiPar * :: FinishTask() ";
147 
148  FairRunAna* ana = FairRunAna::Instance();
149  FairRuntimeDb* rtdb = ana->GetRuntimeDb();
150 
151  fDigiPar = (CbmTofDigiPar*) (rtdb->getContainer("CbmTofDigiPar"));
152 
153  fDigiPar->print();
154 }
155 
156 // ---- Exec ----------------------------------------------------------
157 void CbmTofCreateDigiPar::Exec(Option_t* /*option*/) {}
158 
159 // --------------------------------------------------------------------
161 
162  // The geometry structure is treelike with cave as
163  // the top node. For the TOF there is a keeping volume
164  // tof1. Inside there is a region (supermodule) with cells
165  // which are constructed out of glass and the active gaps.
166  // To extract the gap information one has to navigate there.
167  // Loop over all nodes below the top node (cave). If one of
168  // the nodes contains a string tof it must be the tof keeping
169  // volume. Now loop over all modules. For each module loop over
170  // all cells and for each cell loop now over the parts of this cell.
171  // Each cell is build out of inactive glass plates and the active gaps.
172  // since we are not interested in the inactive parts store only
173  // the relevant information about the gaps.
174  // Example for full path to gap
175  // /cave/tof1_0/t1reg1mod_1/t1reg1cel_1/t1reg1gap_1
176 
177  /* Int_t nrCells = 0;*/
178  std::vector<CbmTofCell*> cellVector;
179  CbmTofCell* tofCell;
180 
181  TString TopNode = gGeoManager->GetTopNode()->GetName();
182  LOG(debug2) << TopNode;
183 
184  // Loop over all detector systems to find tof part
185  TObjArray* detSystems = gGeoManager->GetTopNode()->GetNodes();
186  for (Int_t iSys = 0; iSys < detSystems->GetEntriesFast(); ++iSys) {
187  TGeoNode* node = (TGeoNode*) detSystems->At(iSys);
188  LOG(debug2) << node->GetName();
189 
190  // Only do something useful for tof part of geometry
191  // The node name contains a string "tof"
192  // e.g. tof_vXXy or tof_v12b
193  if (TString(node->GetName()).Contains("tof")) {
194  TString TofNode = node->GetName();
195  LOG(info) << "Found keeping node " << TofNode;
196  if (TString(((node->GetNodes())->At(0))->GetName()).Contains("Stand")) {
197  LOG(info) << " Found Tof Stand "
198  << ((node->GetNodes())->At(0))->GetName();
199  node = (TGeoNode*) (node->GetNodes())->At(0);
200  TofNode = TofNode + "/" + node->GetName();
201  LOG(info) << "Modified keeping node " << TofNode;
202  }
203  TGeoNode* keep = node;
204  TObjArray* keeping = keep->GetNodes();
205 
206  LOG(info) << "Building Tof Digi Par database ... ";
207 
208  // Loop over tof keeping volume. There should be only one.
209  for (Int_t ikeep = 0; ikeep < keeping->GetEntriesFast(); ikeep++) {
210  TGeoNode* keepvol = (TGeoNode*) keeping->At(ikeep);
211  TString KeepNode = keepvol->GetName();
212  TObjArray* modarray = keepvol->GetNodes();
213 
214  // Loop over the different found modules
215  for (Int_t imodule = 0; imodule < modarray->GetEntriesFast();
216  imodule++) {
217  TGeoNode* module = (TGeoNode*) modarray->At(imodule);
218  TString ModuleNode = module->GetName();
219  TObjArray* cellarray = module->GetNodes();
220 
221  // Loop over all cells of each module
222  for (Int_t icell = 0; icell < cellarray->GetEntriesFast(); icell++) {
223  TGeoNode* cell = (TGeoNode*) cellarray->At(icell);
224  TString CellNode = cell->GetName();
225  TObjArray* gaparray = cell->GetNodes();
226 
227  // Loop over all elements belonging to one cell
228  // Relevant are only the gaps which are the active parts of the detector
229  for (Int_t igap = 0; igap < gaparray->GetEntriesFast(); igap++) {
230  TGeoNode* gap = (TGeoNode*) gaparray->At(igap);
231  TString GapNode = gap->GetName();
232 
233  if (GapNode.Contains("gap")) {
234 
235  // Construct full path name for the gap
236  // Extract the necessary geometrical information and store
237  // this information in member variables
238  TString FullPath = "/" + TopNode + "/" + TofNode + "/"
239  + KeepNode + "/" + ModuleNode + "/"
240  + CellNode + "/" + GapNode;
241  LOG(debug2) << "Path: " << FullPath;
242  FillCellInfoFromGeoHandler(FullPath);
243 
244  // Since there are 8 gaps per cell, the information for all these
245  // gaps are stored. After all the information is available the
246  // position of the cell is calculated as mean position of the
247  // 8 individual gaps. The size of each cell should be the same for
248  // all 8 gaps.
249 
250  fCellMapIt = fCellMap.find(fCellID);
251  if (fCellMapIt == fCellMap.end()) {
252  // new tof cell
253  tofCell = new CbmTofCell(fCellID, fX, fY, fZ, fSizex, fSizey);
254  cellVector.clear();
255  cellVector.push_back(tofCell);
256  fCellMap.insert(std::pair<Int_t, std::vector<CbmTofCell*>>(
257  fCellID, cellVector));
258  } else {
259  // already existing cell
260  tofCell = new CbmTofCell(fCellID, fX, fY, fZ, fSizex, fSizey);
261  fCellMap[fCellID].push_back(tofCell);
262  }
263  }
264  }
265  }
266  }
267  }
268  }
269  }
270  // Calculate the mean position for each cell and fill the tof digi parameters
271  FillDigiPar();
272 }
273 
275 
276  // The geometry structure is treelike with cave as
277  // the top node. For the TOF there is a keeping volume
278  // tof1_v<version>. <version is the geometry version which is constructed
279  // from the year when this geometry was developed and a running index starting
280  // with a,b .. . So tof_v12b denotes the second tof geometry version
281  // developed in 2012.
282  // Inside the tof keeping volumes there is one or more (supermodules)
283  // with a gas box inside which contain the different counters.
284  // Each of this counters in now build of a stack of glass plates
285  // and active gas gaps. Interesting for the parameters are only the
286  // gas gaps. Each gap is then subdivided into several detector cells.
287  // To extract the gap information one has to navigate there.
288  // Loop over all nodes below the top node (cave). If one of
289  // the nodes contains a string tof_v it must be the tof keeping
290  // volume. Now loop over all super-modules. For each super-module
291  // loop over all counters. For each counter loop over all gaps and
292  // for each gap loop over all cells.
293  // For each cell/gap store now the relevant information.
294  // Example for full path to gap
295  // /cave_0/tof_v12b_0/module_0_0/gas_box_0/counter_0/Gap_0/Cell_1
296 
297 
298  /* Int_t nrCells = 0;*/
299  std::vector<CbmTofCell*> cellVector;
300  CbmTofCell* tofCell;
301 
302 
303  TString TopNode = gGeoManager->GetTopNode()->GetName();
304  LOG(debug2) << "TopNode: " << TopNode;
305 
306  // Loop over all detector systems to find tof part
307  TObjArray* detSystems = gGeoManager->GetTopNode()->GetNodes();
308  for (Int_t iSys = 0; iSys < detSystems->GetEntriesFast(); ++iSys) {
309  TGeoNode* node = (TGeoNode*) detSystems->At(iSys);
310  LOG(debug2) << "Det system: " << node->GetName();
311 
312  // Only do something useful for tof_v part of geometry
313  // The node name contains a string "tof_v"
314  // e.g. tof_v12b
315  if (TString(node->GetName()).Contains("tof")) {
316  TString TofNode = node->GetName();
317  LOG(info) << "Found tof keeping volume: " << TofNode;
318 
319  if (TString(((node->GetNodes())->At(0))->GetName()).Contains("Stand")) {
320  LOG(info) << " Found Tof Stand "
321  << ((node->GetNodes())->At(0))->GetName();
322  node = (TGeoNode*) (node->GetNodes())->At(0);
323  TofNode = TofNode + "/" + node->GetName();
324  LOG(info) << "Modified tof keeping node " << TofNode;
325  }
326 
327  TGeoNode* keep = node;
328  TObjArray* modarray = keep->GetNodes();
329 
330  if (nullptr == modarray) {
331  LOG(WARNING) << " No modules found in geometry ";
332  return;
333  }
334  // Loop over the different found modules
335  for (Int_t imodule = 0; imodule < modarray->GetEntriesFast(); imodule++) {
336  TGeoNode* module = (TGeoNode*) modarray->At(imodule);
337  TString ModuleNode = module->GetName();
338  TObjArray* modpartarray = module->GetNodes();
339 
340  // Loop over the different parts of a module
341  for (Int_t imodpart = 0; imodpart < modpartarray->GetEntriesFast();
342  imodpart++) {
343  TGeoNode* modpart = (TGeoNode*) modpartarray->At(imodpart);
344  TString ModPartNode = modpart->GetName();
345 
346  if (ModPartNode.Contains("gas_box")) {
347  TObjArray* counterarray = modpart->GetNodes();
348 
349  // Loop over the different counters
350  for (Int_t icounter = 0; icounter < counterarray->GetEntriesFast();
351  icounter++) {
352  TGeoNode* counter = (TGeoNode*) counterarray->At(icounter);
353  TString CounterNode = counter->GetName();
354  if (!CounterNode.Contains("counter")) continue;
355  TObjArray* gaparray = counter->GetNodes();
356  if (nullptr == gaparray)
357  LOG(error) << " no gaps for counter " << CounterNode;
358  // Loop over the different gaps
359  for (Int_t igap = 0; igap < gaparray->GetEntriesFast(); igap++) {
360  TGeoNode* gap = (TGeoNode*) gaparray->At(igap);
361  TString GapNode = gap->GetName();
362  if (GapNode.Contains("Gap")) {
363  TObjArray* cellarray = gap->GetNodes();
364 
365  // Loop over the different cells
366  for (Int_t icell = 0; icell < cellarray->GetEntriesFast();
367  icell++) {
368  TGeoNode* cell = (TGeoNode*) cellarray->At(icell);
369  TString CellNode = cell->GetName();
370 
371  // Construct full path name for the gap
372  // Extract the necessary geometrical information and store
373  // this information in member variables
374  TString FullPath = "/" + TopNode + "/" + TofNode + "/"
375  + +ModuleNode + "/" + ModPartNode + "/"
376  + CounterNode + "/" + GapNode + "/"
377  + CellNode;
378  LOG(debug2) << "Path: " << FullPath;
379 
380  FillCellInfoFromGeoHandler(FullPath);
381 
382  // Since there are 8 gaps per cell, the information for all these
383  // gaps are stored. After all the information is available the
384  // position of the cell is calculated as mean position of the
385  // 8 individual gaps. The size of each cell should be the same for
386  // all 8 gaps.
387 
388  fCellMapIt = fCellMap.find(fCellID);
389  if (fCellMapIt == fCellMap.end()) {
390  // new tof cell
391  tofCell =
392  new CbmTofCell(fCellID, fX, fY, fZ, fSizex, fSizey);
393  cellVector.clear();
394  cellVector.push_back(tofCell);
395  fCellMap.insert(
396  std::pair<Int_t, std::vector<CbmTofCell*>>(fCellID,
397  cellVector));
398  } else {
399  // already existing cell
400  tofCell =
401  new CbmTofCell(fCellID, fX, fY, fZ, fSizex, fSizey);
402  fCellMap[fCellID].push_back(tofCell);
403  }
404  }
405  }
406  }
407  }
408  }
409  }
410  }
411  }
412  }
413  // Calculate the mean position for each cell and fill the tof digi parameters
414  FillDigiPar();
415 }
416 
418  // Calculate the unique detector ID including the gap information.
419  // Since all gaps for a given cell are added up to one channel the
420  // id and corresponding information stored in the parameter container
421  // should be calculated without the gap information.
422 
424 
431 
432  fSizex = fGeoHandler->GetSizeX(FullPath);
433  fSizey = fGeoHandler->GetSizeY(FullPath);
434 
435  fX = fGeoHandler->GetX(FullPath);
436  fY = fGeoHandler->GetY(FullPath);
437  fZ = fGeoHandler->GetZ(FullPath);
438 
439  LOG(debug2) << "FCI: " << FullPath.Data();
440  LOG(debug2) << "FCI: X: " << fX;
441  LOG(debug2) << " Y: " << fY;
442  LOG(debug2) << " Z: " << fZ;
443  LOG(debug2) << " SizeX: " << fSizex;
444  LOG(debug2) << " SizeY: " << fSizey;
445  LOG(debug2) << Form(" DetID: 0x%08x", fDetID);
446  LOG(debug2) << " Region: " << fRegion;
447  LOG(debug2) << " Module: " << fCounter;
448  LOG(debug2) << " Gap: " << fGap;
449  LOG(debug2) << " Cell: " << fCell;
450 
452 
459 
460  LOG(debug2) << "FCI: Cell ID: " << Form("0x%08x", fCellID) << " detId "
461  << Form("0x%08x", fDetID);
462  LOG(debug2) << " Region: " << fGeoHandler->GetRegion(fCellID);
463  LOG(debug2) << " SMTYP: " << fGeoHandler->GetSMType(fCellID);
464  LOG(debug2) << " SModule: " << fGeoHandler->GetSModule(fCellID);
465  LOG(debug2) << " Module: " << fGeoHandler->GetCounter(fCellID);
466  LOG(debug2) << " Gap: " << fGeoHandler->GetGap(fCellID);
467  LOG(debug2) << " Cell: " << fGeoHandler->GetCell(fCellID);
468 }
469 
470 
472 
473  /*
474  ofstream fout;
475  fout.open("output.txt");
476  fout << "#####################################################################################"<<"\n";
477  fout << "# Geometry for the TOF detector"<<"\n";
478  fout << "# Format:"<<"\n";
479  fout << "#"<<"\n";
480  fout << "# Region Module Cell type X[mm] Y[mm] Dx[mm] Dy[mm]"<<"\n";
481  fout << "#####################################################################################"<<"\n";
482  fout << "[TofGeoPar]"<<"\n";
483 */
484 
485  Int_t Nrcells = (Int_t) fCellMap.size();
486  LOG(debug) << "FillDigiPar:: Nr. of tof cells: " << Nrcells;
488  if (NULL == fDigiPar)
489  LOG(fatal) << "Tof Digi Parameter container not available ";
490  fDigiPar->SetNrOfCells(Nrcells); //transfer info to DigiPar
491 
492  TArrayI* CellId = new TArrayI(Nrcells);
493  TArrayD* CellX = new TArrayD(Nrcells);
494  TArrayD* CellY = new TArrayD(Nrcells);
495  TArrayD* CellZ = new TArrayD(Nrcells);
496  TArrayD* CellDx = new TArrayD(Nrcells);
497  TArrayD* CellDy = new TArrayD(Nrcells);
498 
499  Int_t iDigi = 0;
500 
501 
502  std::map<Int_t, CbmTofCell*> singleCellMap;
503  CbmTofCell* singlecell;
504 
505  for (fCellMapIt = fCellMap.begin(); fCellMapIt != fCellMap.end();
506  fCellMapIt++) {
507 
508  CellId->AddAt(fCellMapIt->first, iDigi);
509 
510  std::vector<CbmTofCell*> vcell = fCellMapIt->second;
511  Int_t cellId = fCellMapIt->first;
512  // sanity check
513  std::vector<CbmTofCell*>::iterator vcellIt;
514  Int_t id;
515  /* Int_t oldid;*/
516  /* Bool_t first=kTRUE;*/
517  CbmTofCell* tofcell;
518  Double_t x = 0.;
519  Double_t y = 0.;
520  Double_t z = 0.;
521  Double_t sizex = 0.;
522  Double_t sizey = 0.;
523  for (vcellIt = vcell.begin(); vcellIt != vcell.end(); ++vcellIt) {
524  tofcell = (*vcellIt);
525  id = tofcell->GetDetectorId();
526  if (id != cellId) {
527  LOG(info) << "id, cellId: " << id << " , " << cellId << "\n";
528  LOG(info) << "id and CellId differ";
529  }
530  x += tofcell->GetX();
531  y += tofcell->GetY();
532  z += tofcell->GetZ();
533  sizex += 2. * tofcell->GetSizex(); //nh: factor 2
534  sizey += 2. * tofcell->GetSizey();
535  }
536 
537  CellX->AddAt(x / vcell.size(), iDigi);
538  CellY->AddAt(y / vcell.size(), iDigi);
539  CellZ->AddAt(z / vcell.size(), iDigi);
540  CellDx->AddAt(sizex / vcell.size(), iDigi);
541  CellDy->AddAt(sizey / vcell.size(), iDigi);
542 
543 
544  singlecell = new CbmTofCell(cellId,
545  x / vcell.size(),
546  y / vcell.size(),
547  z / vcell.size(),
548  sizex / vcell.size(),
549  sizey / vcell.size());
550  singleCellMap.insert(std::pair<Int_t, CbmTofCell*>(cellId, singlecell));
551 
552 
553  fRegion = fGeoHandler->GetRegion(cellId);
554  fSMType = fGeoHandler->GetSMType(cellId);
555  fSModule = fGeoHandler->GetSModule(cellId);
556  fCounter = fGeoHandler->GetCounter(cellId);
557  fCell = fGeoHandler->GetCell(cellId);
558 
559  if (0) {
560  LOG(info) << "FillDigiPar " << iDigi << ", cellId = " << cellId << ", t "
561  << fSMType << " m " << fSModule << " c " << fCounter << " s "
562  << fCell << " " << x / vcell.size() * 10 << " "
563  << y / vcell.size() * 10 << " " << z / vcell.size() * 10
564  << " " << sizex / vcell.size() * 10 << " "
565  << sizey / vcell.size() * 10;
566  }
567  iDigi++;
568  }
569 
570 
571  fDigiPar->SetNrOfCells(Nrcells);
572  fDigiPar->SetCellIdArray(*CellId);
573  fDigiPar->SetCellXArray(*CellX);
574  fDigiPar->SetCellYArray(*CellY);
575  fDigiPar->SetCellZArray(*CellZ);
576  fDigiPar->SetCellDxArray(*CellDx);
577  fDigiPar->SetCellDyArray(*CellDy);
578  fDigiPar->SetCellMap(singleCellMap);
579 }
580 
581 
CbmTofCreateDigiPar::fCounter
Int_t fCounter
Definition: CbmTofCreateDigiPar.h:60
CbmTofCell::GetZ
Double_t GetZ() const
Definition: CbmTofCell.h:38
CbmTofDigiPar::SetCellMap
void SetCellMap(std::map< Int_t, CbmTofCell * > map)
Definition: CbmTofDigiPar.h:42
CbmTofCreateDigiPar::~CbmTofCreateDigiPar
virtual ~CbmTofCreateDigiPar()
Definition: CbmTofCreateDigiPar.cxx:68
CbmTofCell::GetSizex
Double_t GetSizex() const
Definition: CbmTofCell.h:40
CbmTofGeoHandler::GetCounter
Int_t GetCounter(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:469
CbmTofCreateDigiPar::SetParContainers
virtual void SetParContainers()
Definition: CbmTofCreateDigiPar.cxx:72
CbmTofDigiPar::GetNrOfModules
Int_t GetNrOfModules()
Definition: CbmTofDigiPar.h:44
CbmTofCell::GetDetectorId
Int_t GetDetectorId() const
Definition: CbmTofCell.h:35
CbmTofGeoHandler::GetRegion
Int_t GetRegion(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:484
CbmTofCreateDigiPar::fSizey
Double_t fSizey
Definition: CbmTofCreateDigiPar.h:66
CbmTofDigiPar::SetNodeMap
void SetNodeMap(std::map< Int_t, TGeoNode * > map)
Definition: CbmTofDigiPar.h:54
CbmTofGeoHandler::GetGap
Int_t GetGap(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:474
CbmTofCreateDigiPar::fGap
Int_t fGap
Definition: CbmTofCreateDigiPar.h:61
CbmTofDigiPar::SetNrOfCells
void SetNrOfCells(Int_t i)
Definition: CbmTofDigiPar.h:34
CbmTofCreateDigiPar::FillCellMapRootGeometry
void FillCellMapRootGeometry()
Definition: CbmTofCreateDigiPar.cxx:274
CbmTofDigiPar::SetCellDyArray
void SetCellDyArray(TArrayD array)
Definition: CbmTofDigiPar.h:40
CbmTofGeoHandler::GetSizeY
Float_t GetSizeY(TString volName)
Definition: CbmTofGeoHandler.cxx:503
CbmTofDigiPar.h
CbmTofDigiPar::GetCell
CbmTofCell * GetCell(Int_t i)
Definition: CbmTofDigiPar.h:48
CbmTofGeoHandler::GetZ
Float_t GetZ(TString volName)
Definition: CbmTofGeoHandler.cxx:515
CbmTofGeoHandler::GetSModule
Int_t GetSModule(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:464
CbmTofCreateDigiPar.h
CbmTofAnaTestbeam::fGeoHandler
CbmTofGeoHandler * fGeoHandler
Definition: CbmTofAnaTestbeam.h:308
CbmTofGeoHandler.h
CbmTofDigiPar::SetCellYArray
void SetCellYArray(TArrayD array)
Definition: CbmTofDigiPar.h:37
CbmTofCreateDigiPar::fZ
Double_t fZ
Definition: CbmTofCreateDigiPar.h:69
CbmTofCreateDigiPar::fSizex
Double_t fSizex
Definition: CbmTofCreateDigiPar.h:65
CbmTofDigiPar::SetCellZArray
void SetCellZArray(TArrayD array)
Definition: CbmTofDigiPar.h:38
CbmTofCreateDigiPar::fCell
Int_t fCell
Definition: CbmTofCreateDigiPar.h:62
CbmTofAnaTestbeam::fDigiPar
CbmTofDigiPar * fDigiPar
Definition: CbmTofAnaTestbeam.h:328
CbmTofGeoHandler::GetCellId
Int_t GetCellId(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:493
CbmTofGeoHandler
Definition: CbmTofGeoHandler.h:30
CbmTofCreateDigiPar::fGeoHandler
CbmTofGeoHandler * fGeoHandler
pointer to digi parameters
Definition: CbmTofCreateDigiPar.h:81
k12b
@ k12b
Definition: CbmTofGeoHandler.h:17
CbmTofCell::GetX
Double_t GetX() const
Definition: CbmTofCell.h:36
CbmTofCell
Definition: CbmTofCell.h:8
CbmTofCreateDigiPar::fSMType
Int_t fSMType
Definition: CbmTofCreateDigiPar.h:58
k14a
@ k14a
Definition: CbmTofGeoHandler.h:17
CbmTofCreateDigiPar::fY
Double_t fY
Definition: CbmTofCreateDigiPar.h:68
CbmTofCreateDigiPar::fCellMap
std::map< Int_t, std::vector< CbmTofCell * > > fCellMap
Definition: CbmTofCreateDigiPar.h:76
CbmTofCreateDigiPar::fSModule
Int_t fSModule
Definition: CbmTofCreateDigiPar.h:59
CbmTofGeoHandler::Init
Int_t Init(Bool_t isSimulation=kFALSE)
Definition: CbmTofGeoHandler.cxx:39
CbmTofGeoHandler::GetUniqueDetectorId
Int_t GetUniqueDetectorId()
Definition: CbmTofGeoHandler.cxx:149
CbmTofAnaTestbeam::fChannelInfo
CbmTofCell * fChannelInfo
Definition: CbmTofAnaTestbeam.h:310
ClassImp
ClassImp(CbmConverterManager) InitStatus CbmConverterManager
Definition: CbmConverterManager.cxx:12
CbmTofCreateDigiPar::fCellID
Int_t fCellID
Definition: CbmTofCreateDigiPar.h:73
k07a
@ k07a
Definition: CbmTofGeoHandler.h:17
CbmTofCreateDigiPar::Exec
virtual void Exec(Option_t *option)
Definition: CbmTofCreateDigiPar.cxx:157
CbmTofCell.h
CbmTofCreateDigiPar::Init
virtual InitStatus Init()
Definition: CbmTofCreateDigiPar.cxx:102
CbmTofCreateDigiPar::ReInit
virtual InitStatus ReInit()
Definition: CbmTofCreateDigiPar.cxx:87
fCounter
constexpr const Int_t fCounter(0)
CbmTofCell::GetSizey
Double_t GetSizey() const
Definition: CbmTofCell.h:41
CbmTofCreateDigiPar::FillDigiPar
void FillDigiPar()
Definition: CbmTofCreateDigiPar.cxx:471
CbmTofCreateDigiPar::fCellMapIt
std::map< Int_t, std::vector< CbmTofCell * > >::iterator fCellMapIt
Definition: CbmTofCreateDigiPar.h:77
CbmTofGeoHandler::GetCell
Int_t GetCell(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:479
CbmTofCreateDigiPar::FillCellMapAsciiGeometry
void FillCellMapAsciiGeometry()
Definition: CbmTofCreateDigiPar.cxx:160
CbmTofCreateDigiPar::fRegion
Int_t fRegion
Definition: CbmTofCreateDigiPar.h:63
counter
int counter
Definition: CbmMvdSensorDigiToHitTask.cxx:72
CbmTofGeoHandler::GetY
Float_t GetY(TString volName)
Definition: CbmTofGeoHandler.cxx:520
CbmTofGeoHandler::GetSizeX
Float_t GetSizeX(TString volName)
Definition: CbmTofGeoHandler.cxx:497
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmTofCreateDigiPar::fDigiPar
CbmTofDigiPar * fDigiPar
Definition: CbmTofCreateDigiPar.h:79
CbmTofDigiPar
Definition: CbmTofDigiPar.h:18
CbmTofGeoHandler::GetSMType
Int_t GetSMType(Int_t uniqueId)
Definition: CbmTofGeoHandler.cxx:459
CbmTofCreateDigiPar::CbmTofCreateDigiPar
CbmTofCreateDigiPar()
Definition: CbmTofCreateDigiPar.cxx:23
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmTofDigiPar::SetCellDxArray
void SetCellDxArray(TArrayD array)
Definition: CbmTofDigiPar.h:39
CbmTofDigiPar::GetCellId
Int_t GetCellId(Int_t i)
Definition: CbmTofDigiPar.h:45
CbmTofCreateDigiPar::FinishTask
virtual void FinishTask()
Definition: CbmTofCreateDigiPar.cxx:144
CbmTofCreateDigiPar::fDetID
Int_t fDetID
Definition: CbmTofCreateDigiPar.h:71
CbmTofCell::GetY
Double_t GetY() const
Definition: CbmTofCell.h:37
CbmTofDigiPar::SetCellIdArray
void SetCellIdArray(TArrayI array)
Definition: CbmTofDigiPar.h:35
CbmTofCreateDigiPar::fX
Double_t fX
Definition: CbmTofCreateDigiPar.h:67
CbmTofCreateDigiPar::FillCellInfoFromGeoHandler
void FillCellInfoFromGeoHandler(TString FullPath)
Definition: CbmTofCreateDigiPar.cxx:417
CbmTofGeoHandler::GetX
Float_t GetX(TString volName)
Definition: CbmTofGeoHandler.cxx:525
CbmTofCreateDigiPar
Definition: CbmTofCreateDigiPar.h:23
CbmTofDigiPar::SetCellXArray
void SetCellXArray(TArrayD array)
Definition: CbmTofDigiPar.h:36