CbmRoot
CbmMcbm2019CheckDtInDet.cxx
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
9 
10 #include "CbmDigiManager.h"
11 #include "CbmFlesHistosTools.h"
12 #include "CbmMuchBeamTimeDigi.h"
13 #include "CbmPsdDigi.h"
14 #include "CbmRichDigi.h"
15 #include "CbmStsDigi.h"
16 #include "CbmTofDigi.h"
17 #include "CbmTrdDigi.h"
18 
19 #include "FairLogger.h"
20 #include "FairRootManager.h"
21 #include "FairRunOnline.h"
22 
23 #include "TClonesArray.h"
24 #include "TH1.h"
25 #include "TH2.h"
26 #include "THttpServer.h"
27 #include "TProfile.h"
28 #include <TFile.h>
29 
30 
31 #include <iomanip>
32 #include <iostream>
33 #include <type_traits>
34 using std::fixed;
35 using std::setprecision;
36 
37 // ---- Default constructor -------------------------------------------
39  : FairTask("CbmMcbm2019CheckDtInDet") {}
40 
41 // ---- Destructor ----------------------------------------------------
43 
44 // ---- Initialisation ----------------------------------------------
46  // Load all necessary parameter containers from the runtime data base
47  /*
48  FairRunAna* ana = FairRunAna::Instance();
49  FairRuntimeDb* rtdb=ana->GetRuntimeDb();
50 
51  <CbmMcbm2019CheckDtInDetDataMember> = (<ClassPointer>*)
52  (rtdb->getContainer("<ContainerName>"));
53  */
54 }
55 
56 // ---- Init ----------------------------------------------------------
58 
59  // Get a handle from the IO manager
60  FairRootManager* ioman = FairRootManager::Instance();
61 
62  // Digi manager
65  fDigiMan->Init();
66 
67  // T0 is not included in DigiManager; have to take care here
68  // Try to find a vector branch for the digi
69  fT0DigiVector = ioman->InitObjectAs<std::vector<CbmTofDigi> const*>("T0Digi");
70  if (!fT0DigiVector) {
71  LOG(info) << "No T0 digi vector found; trying TClonesArray";
72  if (std::is_convertible<TObject*, CbmTofDigi*>::value) {
73  fT0DigiArray = dynamic_cast<TClonesArray*>(ioman->GetObject("T0Digi"));
74  if (!fT0DigiArray) LOG(info) << "No T0 digi input found.";
75  } //? CbmTofDigi derives from TObject
76  } //? No vector for T0 digis
77 
79  LOG(info) << "No STS digi input found.";
80  }
81 
83  LOG(info) << "No MUCH digi input found.";
84  }
85 
87  LOG(info) << "No TRD digi input found.";
88  } // if ( ! fDigiMan->IsPresent( ECbmModuleId::kTrd) )
89  else {
92  dynamic_cast<TClonesArray*>(ioman->GetObject("TimesliceMetaData"));
94  LOG(fatal) << "No TS metadata input found while TRD needs it.";
95  } // else of if ( ! fDigiMan->IsPresent( ECbmModuleId::kTrd) )
96 
98  LOG(info) << "No TOF digi input found.";
99  }
100 
102  LOG(info) << "No RICH digi input found.";
103  }
104 
106  LOG(info) << "No PSD digi input found.";
107  }
108 
109  CreateHistos();
110 
111  return kSUCCESS;
112 }
113 
116  uint32_t iNbBinsLog = 0;
118  std::vector<double> dBinsLogVector = GenerateLogBinArray(9, 9, 1, iNbBinsLog);
119  double* dBinsLog = dBinsLogVector.data();
120  // double * dBinsLog = GenerateLogBinArray( 9, 9, 1, iNbBinsLog );
121 
123  // T0 vs. T0
124  fT0T0SameTime = new TH1F(
125  "fT0T0SameTime", "Fract. same time T0;Same Time? [];Counts", 2, -0.5, 1.5);
126  // sts vs. Sts
127  fStsStsSameTime = new TH1F("fStsStsSameTime",
128  "Fract. same time Sts;Same Time? [];Counts",
129  2,
130  -0.5,
131  1.5);
132  // Much vs. Much
133  fMuchMuchSameTime = new TH1F("fMuchMuchSameTime",
134  "Fract. same time Much;Same Time? [];Counts",
135  2,
136  -0.5,
137  1.5);
138  // Trd vs. Trd
139  fTrdTrdSameTime = new TH1F("fTrdTrdSameTime",
140  "Fract. same time Trd;Same Time? [];Counts",
141  2,
142  -0.5,
143  1.5);
144  // Tof vs. Tof
145  fTofTofSameTime = new TH1F("fTofTofSameTime",
146  "Fract. same time Tof;Same Time? [];Counts",
147  2,
148  -0.5,
149  1.5);
150  // Rich vs. Rich
151  fRichRichSameTime = new TH1F("fRichRichSameTime",
152  "Fract. same time Rich;Same Time? [];Counts",
153  2,
154  -0.5,
155  1.5);
156  // Psd vs. Psd
157  fPsdPsdSameTime = new TH1F("fPsdPsdSameTime",
158  "Fract. same time Psd;Same Time? [];Counts",
159  2,
160  -0.5,
161  1.5);
162 
164  // T0 vs. T0
165  fT0T0Diff = new TH1F(
166  "fT0T0Diff", "T0-T0_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
167  // sts vs. Sts
168  fStsStsDiff = new TH1F(
169  "fStsStsDiff", "Sts-Sts_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
170  // Much vs. Much
171  fMuchMuchDiff = new TH1F("fMuchMuchDiff",
172  "Much-Much_prev;time diff [ns];Counts",
173  10001,
174  -0.5,
175  10000.5);
176  // Trd vs. Trd
177  fTrdTrdDiff = new TH1F(
178  "fTrdTrdDiff", "Trd-Trd_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
179  // Tof vs. Tof
180  fTofTofDiff = new TH1F(
181  "fTofTofDiff", "Tof-Tof_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
182  // Rich vs. Rich
183  fRichRichDiff = new TH1F("fRichRichDiff",
184  "Rich-Rich_prev;time diff [ns];Counts",
185  10001,
186  -0.5,
187  10000.5);
188  // Psd vs. Psd
189  fPsdPsdDiff = new TH1F(
190  "fPsdPsdDiff", "Psd-Psd_prev;time diff [ns];Counts", 10001, -0.5, 10000.5);
191  // T0 vs. T0
192  fT0T0DiffLog = new TH1F(
193  "fT0T0DiffLog", "T0-T0_prev;time diff [ns];Counts", iNbBinsLog, dBinsLog);
194  // sts vs. Sts
195  fStsStsDiffLog = new TH1F("fStsStsDiffLog",
196  "Sts-Sts_prev;time diff [ns];Counts",
197  iNbBinsLog,
198  dBinsLog);
199  // Much vs. Much
200  fMuchMuchDiffLog = new TH1F("fMuchMuchDiffLog",
201  "Much-Much_prev;time diff [ns];Counts",
202  iNbBinsLog,
203  dBinsLog);
204  // Trd vs. Trd
205  fTrdTrdDiffLog = new TH1F("fTrdTrdDiffLog",
206  "Trd-Trd_prev;time diff [ns];Counts",
207  iNbBinsLog,
208  dBinsLog);
209  // Tof vs. Tof
210  fTofTofDiffLog = new TH1F("fTofTofDiffLog",
211  "Tof-Tof_prev;time diff [ns];Counts",
212  iNbBinsLog,
213  dBinsLog);
214  // Rich vs. Rich
215  fRichRichDiffLog = new TH1F("fRichRichDiffLog",
216  "Rich-Rich_prev;time diff [ns];Counts",
217  iNbBinsLog,
218  dBinsLog);
219  // Psd vs. Psd
220  fPsdPsdDiffLog = new TH1F("fPsdPsdDiffLog",
221  "Psd-Psd_prev;time diff [ns];Counts",
222  iNbBinsLog,
223  dBinsLog);
224 
226  // T0 vs. T0
228  new TH2F("fT0T0DiffPerChan",
229  "T0-T0_prev Per Channel;time diff [ns]; Channel [];Counts",
230  iNbBinsLog,
231  dBinsLog,
232  fuNbChanT0,
233  0,
234  fuNbChanT0);
235  // sts vs. Sts
237  new TH2F("fStsStsDiffPerChan",
238  "Sts-Sts_prev Per Channel;time diff [ns]; Channel [];Counts",
239  iNbBinsLog,
240  dBinsLog,
241  fuNbChanSts,
242  0,
243  fuNbChanSts);
244  // Much vs. Much
246  new TH2F("fMuchMuchDiffPerChan",
247  "Much-Much_prev Per Channel;time diff [ns]; Channel [];Counts",
248  iNbBinsLog,
249  dBinsLog,
250  fuNbChanMuch,
251  0,
252  fuNbChanMuch);
253  // Trd vs. Trd
255  new TH2F("fTrdTrdDiffPerChan",
256  "Trd-Trd_prev Per Channel;time diff [ns]; Channel [];Counts",
257  iNbBinsLog,
258  dBinsLog,
259  fuNbChanTrd,
260  0,
261  fuNbChanTrd);
262  // Tof vs. Tof
264  new TH2F("fTofTofDiffPerChan",
265  "Tof-Tof_prev Per Channel;time diff [ns]; Channel [];Counts",
266  iNbBinsLog,
267  dBinsLog,
268  fuNbChanTof,
269  0,
270  fuNbChanTof);
271  // Rich vs. Rich
273  new TH2F("fRichRichDiffPerChan",
274  "Rich-Rich_prev Per Channel;time diff [ns]; Channel [];Counts",
275  iNbBinsLog,
276  dBinsLog,
277  fuNbChanRich,
278  0,
279  fuNbChanRich);
280  // Psd vs. Psd
282  new TH2F("fPsdPsdDiffPerChan",
283  "Psd-Psd_prev Per Channel;time diff [ns]; Channel [];Counts",
284  iNbBinsLog,
285  dBinsLog,
286  fuNbChanPsd,
287  0,
288  fuNbChanPsd);
289 
291  FairRunOnline* run = FairRunOnline::Instance();
292  if (run) {
293  THttpServer* server = run->GetHttpServer();
294  if (nullptr != server) {
295 
296  server->Register("/Dt", fT0T0Diff);
297  server->Register("/Dt", fStsStsDiff);
298  server->Register("/Dt", fMuchMuchDiff);
299  server->Register("/Dt", fTrdTrdDiff);
300  server->Register("/Dt", fTofTofDiff);
301  server->Register("/Dt", fRichRichDiff);
302  server->Register("/Dt", fPsdPsdDiff);
303 
304  server->Register("/Dt", fT0T0DiffLog);
305  server->Register("/Dt", fStsStsDiffLog);
306  server->Register("/Dt", fMuchMuchDiffLog);
307  server->Register("/Dt", fTrdTrdDiffLog);
308  server->Register("/Dt", fTofTofDiffLog);
309  server->Register("/Dt", fRichRichDiffLog);
310  server->Register("/Dt", fPsdPsdDiffLog);
311 
312  server->Register("/DtPerChan", fT0T0DiffPerChan);
313  server->Register("/DtPerChan", fStsStsDiffPerChan);
314  server->Register("/DtPerChan", fMuchMuchDiffPerChan);
315  server->Register("/DtPerChan", fTrdTrdDiffPerChan);
316  server->Register("/DtPerChan", fTofTofDiffPerChan);
317  server->Register("/DtPerChan", fRichRichDiffPerChan);
318  server->Register("/DtPerChan", fPsdPsdDiffPerChan);
319  }
320  }
321 }
322 // ---- ReInit -------------------------------------------------------
323 InitStatus CbmMcbm2019CheckDtInDet::ReInit() { return kSUCCESS; }
324 
325 // ---- Exec ----------------------------------------------------------
326 void CbmMcbm2019CheckDtInDet::Exec(Option_t* /*option*/) {
327  LOG(debug) << "executing TS " << fNrTs;
328 
329  if (0 < fNrTs && 0 == fNrTs % 1000)
330  LOG(info) << Form("Processing TS %6d", fNrTs);
331 
333  LOG(debug) << "Begin";
334  Int_t nrT0Digis = 0;
335  if (fT0DigiVector)
336  nrT0Digis = fT0DigiVector->size();
337  else if (fT0DigiArray)
338  nrT0Digis = fT0DigiArray->GetEntriesFast();
339  LOG(debug) << "T0Digis: " << nrT0Digis;
340 
341  /*
342  Int_t nrStsDigis = fDigiMan->GetNofDigis( ECbmModuleId::kSts);
343  Int_t nrMuchDigis = fDigiMan->GetNofDigis( ECbmModuleId::kMuch);
344  Int_t nrTrdDigis = fDigiMan->GetNofDigis( ECbmModuleId::kTrd);
345  Int_t nrTofDigis = fDigiMan->GetNofDigis( ECbmModuleId::kTof);
346  Int_t nrRichDigis = fDigiMan->GetNofDigis( ECbmModuleId::kRich);
347  Int_t nrPsdDigis = fDigiMan->GetNofDigis( ECbmModuleId::kPsd);
348 */
349 
351  for (Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0) {
352 
353  if (iT0 % 1000 == 0) LOG(debug) << "Executing entry " << iT0;
354 
355  const CbmTofDigi* T0Digi = nullptr;
356  if (fT0DigiVector)
357  T0Digi = &(fT0DigiVector->at(iT0));
358  else if (fT0DigiArray)
359  T0Digi = dynamic_cast<CbmTofDigi*>(fT0DigiArray->At(iT0));
360  assert(T0Digi);
361 
362  Double_t T0Time = T0Digi->GetTime();
363  // Int_t T0Address = T0Digi->GetAddress();
364 
365  Double_t T0TimeDiff = T0Time - fPrevTimeT0;
366 
367  if (0 < iT0) {
368  fT0T0Diff->Fill(T0TimeDiff);
369  if (0 < T0TimeDiff) {
370  fT0T0SameTime->Fill(0);
371  fT0T0DiffLog->Fill(T0TimeDiff);
372  } // if( 0 < T0TimeDiff)
373  else
374  fT0T0SameTime->Fill(1);
375  } // if( 0 < iT0 )
376 
377  fPrevTimeT0 = T0Time;
378  } // for( Int_t iT0 = 0; iT0 < nrT0Digis; ++iT0 )
379 
381  FillHistosPerDet<CbmStsDigi>(fStsStsSameTime,
382  fStsStsDiff,
386  FillHistosPerDet<CbmMuchBeamTimeDigi>(fMuchMuchSameTime,
391  FillHistosPerDet<CbmTrdDigi>(fTrdTrdSameTime,
392  fTrdTrdDiff,
396  FillHistosPerDet<CbmTofDigi>(fTofTofSameTime,
397  fTofTofDiff,
401  FillHistosPerDet<CbmRichDigi>(fRichRichSameTime,
406  FillHistosPerDet<CbmPsdDigi>(fPsdPsdSameTime,
407  fPsdPsdDiff,
411 
412  fNrTs++;
413 
414  if (0 < fNrTs && 0 == fNrTs % 90000) WriteHistos();
415 }
416 
417 
418 template<class Digi>
420  TH1* histoDt,
421  TH1* histoDtLog,
422  TH2* /*histoDtPerChan*/,
423  ECbmModuleId iDetId) {
424  UInt_t uNrDigis = fDigiMan->GetNofDigis(iDetId);
425 
426  Double_t dPrevTime = -1;
427 
428  for (UInt_t uDigiIdx = 0; uDigiIdx < uNrDigis; ++uDigiIdx) {
429  const Digi* digi = fDigiMan->Get<Digi>(uDigiIdx);
430 
431  Double_t dNewDigiTime = digi->GetTime();
432 
433  if (0 < uDigiIdx) {
434  Double_t dTimeDiff = dNewDigiTime - dPrevTime;
435 
436  histoDt->Fill(dTimeDiff);
437  if (0 < dTimeDiff) {
438  histoSameTime->Fill(0);
439  histoDtLog->Fill(dTimeDiff);
440  } // if( 0 < dTimeDiff )
441  else
442  histoSameTime->Fill(1);
443  } //
444  /*
446  switch( iDetId )
447  {
448  case kSts: ///< Silicon Tracking System
449  {
450  const CbmStsDigi* stsDigi;
451  try {
452  stsDigi =
453  boost::any_cast<const CbmStsDigi*>( digi );
454  } catch( ... ) {
455  LOG( fatal ) << "Failed boost any_cast in CbmMcbm2019CheckPulser::FillSystemOffsetHistos for a digi of type "
456  << Digi::GetClassName();
457  } // try/catch
458  assert(stsDigi);
459  UInt_t uAddr = stsDigi->GetAddress();
460  UInt_t uChan = stsDigi->GetChannel();
461 
462  break;
463  } // case kSts:
464  case kMuch: ///< Muon detection system
465  {
466  const CbmMuchBeamTimeDigi* muchDigi;
467  try {
468  muchDigi =
469  boost::any_cast<const CbmMuchBeamTimeDigi*>( digi );
470  } catch( ... ) {
471  LOG( fatal ) << "Failed boost any_cast in CbmMcbm2019CheckPulser::FillSystemOffsetHistos for a digi of type "
472  << Digi::GetClassName();
473  } // try/catch
474  assert(muchDigi);
475  UInt_t uAsic = muchDigi->GetNxId();
476  UInt_t uChan = muchDigi->GetNxCh();
477 
478  break;
479  } // case kMuch:
480  case kTrd: ///< Time-of-flight Detector
481  {
482  UInt_t uAddr = digi->GetAddress();
483  break;
484  } // case kTrd:
485  case kTof: ///< Time-of-flight Detector
486  {
487 
488  break;
489  } // case kTof:
490  case kRich: ///< Ring-Imaging Cherenkov Detector
491  {
492 
493  break;
494  } // case kRich:
495  case kPsd: ///< Projectile spectator detector
496  {
497  UInt_t uAddr = digi->GetAddress();
498 
499  break;
500  } // case kPsd:
501  default:
502  return 0;
503  } // switch( iDetId )
504 */
505  dPrevTime = dNewDigiTime;
506  } // for( UInt_t uDigiIdx = 0; uDigiIdx < uNrDigis; ++uDigiIdx )
507 }
508 
509 // ---- Finish --------------------------------------------------------
511 
513  TFile* old = gFile;
514  TFile* outfile = TFile::Open(fOutFileName, "RECREATE");
515 
516  fT0T0SameTime->Write();
517  fStsStsSameTime->Write();
518  fMuchMuchSameTime->Write();
519  fTrdTrdSameTime->Write();
520  fTofTofSameTime->Write();
521  fRichRichSameTime->Write();
522  fPsdPsdSameTime->Write();
523 
524  fT0T0Diff->Write();
525  fStsStsDiff->Write();
526  fMuchMuchDiff->Write();
527  fTrdTrdDiff->Write();
528  fTofTofDiff->Write();
529  fRichRichDiff->Write();
530  fPsdPsdDiff->Write();
531 
532  fT0T0DiffLog->Write();
533  fStsStsDiffLog->Write();
534  fMuchMuchDiffLog->Write();
535  fTrdTrdDiffLog->Write();
536  fTofTofDiffLog->Write();
537  fRichRichDiffLog->Write();
538  fPsdPsdDiffLog->Write();
539 
540  fT0T0DiffPerChan->Write();
541  fStsStsDiffPerChan->Write();
542  fMuchMuchDiffPerChan->Write();
543  fTrdTrdDiffPerChan->Write();
544  fTofTofDiffPerChan->Write();
545  fRichRichDiffPerChan->Write();
546  fPsdPsdDiffPerChan->Write();
547 
548  outfile->Close();
549  delete outfile;
550 
551  gFile = old;
552 }
553 
CbmMcbm2019CheckDtInDet::fTrdTrdDiffPerChan
TH2 * fTrdTrdDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:152
CbmMcbm2019CheckDtInDet
Definition: CbmMcbm2019CheckDtInDet.h:31
CbmMcbm2019CheckDtInDet::Finish
virtual void Finish()
Definition: CbmMcbm2019CheckDtInDet.cxx:510
CbmMcbm2019CheckDtInDet::fStsStsDiffPerChan
TH2 * fStsStsDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:150
CbmMcbm2019CheckDtInDet::fuNbChanTrd
UInt_t fuNbChanTrd
Definition: CbmMcbm2019CheckDtInDet.h:117
CbmMcbm2019CheckDtInDet::fTofTofDiffLog
TH1 * fTofTofDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:144
CbmMcbm2019CheckDtInDet::fuNbChanTof
UInt_t fuNbChanTof
Definition: CbmMcbm2019CheckDtInDet.h:118
CbmMcbm2019CheckDtInDet::fRichRichDiffLog
TH1 * fRichRichDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:145
CbmPsdDigi.h
CbmMcbm2019CheckDtInDet::fuNbChanMuch
UInt_t fuNbChanMuch
Definition: CbmMcbm2019CheckDtInDet.h:116
CbmMcbm2019CheckDtInDet::fMuchMuchSameTime
TH1 * fMuchMuchSameTime
Definition: CbmMcbm2019CheckDtInDet.h:126
CbmMcbm2019CheckDtInDet::fT0DigiVector
const std::vector< CbmTofDigi > * fT0DigiVector
Definition: CbmMcbm2019CheckDtInDet.h:91
CbmMcbm2019CheckDtInDet::fRichRichSameTime
TH1 * fRichRichSameTime
Definition: CbmMcbm2019CheckDtInDet.h:129
CbmDigiManager::Init
InitStatus Init()
Initialisation.
Definition: CbmDigiManager.cxx:71
CbmMcbm2019CheckDtInDet::CbmMcbm2019CheckDtInDet
CbmMcbm2019CheckDtInDet()
Definition: CbmMcbm2019CheckDtInDet.cxx:38
CbmMcbm2019CheckDtInDet::fuNbChanSts
UInt_t fuNbChanSts
Definition: CbmMcbm2019CheckDtInDet.h:115
ECbmModuleId
ECbmModuleId
Definition: CbmDefs.h:33
CbmDigiManager::GetNofDigis
static Int_t GetNofDigis(ECbmModuleId systemId)
Definition: CbmDigiManager.cxx:62
CbmDigiManager::UseMuchBeamTimeDigi
void UseMuchBeamTimeDigi(Bool_t choice=kTRUE)
Use CbmMuchBeamTimeDigi instead of CbmMuchDigi for MUCH.
Definition: CbmDigiManager.h:130
CbmTofDigi.h
ECbmModuleId::kTof
@ kTof
Time-of-flight Detector.
CbmDigiManager::IsPresent
static Bool_t IsPresent(ECbmModuleId systemId)
Presence of a digi branch.
Definition: CbmDigiManager.cxx:112
CbmMcbm2019CheckDtInDet::fT0DigiArray
TClonesArray * fT0DigiArray
Definition: CbmMcbm2019CheckDtInDet.h:92
CbmDigiManager::Instance
static CbmDigiManager * Instance()
Static instance.
Definition: CbmDigiManager.h:93
CbmRichDigi.h
CbmMcbm2019CheckDtInDet::fNrTs
Int_t fNrTs
Definition: CbmMcbm2019CheckDtInDet.h:122
CbmTrdDigi.h
CbmMcbm2019CheckDtInDet::fT0T0Diff
TH1 * fT0T0Diff
Definition: CbmMcbm2019CheckDtInDet.h:132
CbmStsDigi.h
CbmMcbm2019CheckDtInDet::Init
virtual InitStatus Init()
Definition: CbmMcbm2019CheckDtInDet.cxx:57
CbmMcbm2019CheckDtInDet::WriteHistos
void WriteHistos()
Definition: CbmMcbm2019CheckDtInDet.cxx:512
CbmMcbm2019CheckDtInDet::fPrevTimeT0
Double_t fPrevTimeT0
Variables to store the previous digi time.
Definition: CbmMcbm2019CheckDtInDet.h:105
CbmMcbm2019CheckDtInDet::fTrdTrdSameTime
TH1 * fTrdTrdSameTime
Definition: CbmMcbm2019CheckDtInDet.h:127
CbmDigiManager::Get
const Digi * Get(Int_t index) const
Get a digi object.
Definition: CbmDigiManager.h:52
CbmMcbm2019CheckDtInDet::fStsStsDiffLog
TH1 * fStsStsDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:141
CbmMcbm2019CheckDtInDet::fStsStsDiff
TH1 * fStsStsDiff
Definition: CbmMcbm2019CheckDtInDet.h:133
CbmMuchBeamTimeDigi.h
CbmTofDigi::GetTime
Double_t GetTime() const
Inherited from CbmDigi.
Definition: CbmTofDigi.h:111
CbmMcbm2019CheckDtInDet::fTimeSliceMetaDataArray
TClonesArray * fTimeSliceMetaDataArray
Definition: CbmMcbm2019CheckDtInDet.h:93
CbmMcbm2019CheckDtInDet::fuNbChanPsd
UInt_t fuNbChanPsd
Definition: CbmMcbm2019CheckDtInDet.h:120
ECbmModuleId::kRich
@ kRich
Ring-Imaging Cherenkov Detector.
CbmMcbm2019CheckDtInDet.h
CbmMcbm2019CheckDtInDet::fT0T0DiffLog
TH1 * fT0T0DiffLog
Definition: CbmMcbm2019CheckDtInDet.h:140
ClassImp
ClassImp(CbmConverterManager) InitStatus CbmConverterManager
Definition: CbmConverterManager.cxx:12
CbmMcbm2019CheckDtInDet::fTofTofDiffPerChan
TH2 * fTofTofDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:153
CbmMcbm2019CheckDtInDet::fOutFileName
TString fOutFileName
Definition: CbmMcbm2019CheckDtInDet.h:158
CbmMcbm2019CheckDtInDet::FillHistosPerDet
void FillHistosPerDet(TH1 *histoSameTime, TH1 *histoDt, TH1 *histoDtLog, TH2 *histoDtPerChan, ECbmModuleId iDetId=ECbmModuleId::kLastModule)
Definition: CbmMcbm2019CheckDtInDet.cxx:419
CbmMcbm2019CheckDtInDet::~CbmMcbm2019CheckDtInDet
~CbmMcbm2019CheckDtInDet()
Definition: CbmMcbm2019CheckDtInDet.cxx:42
CbmMcbm2019CheckDtInDet::fMuchMuchDiffLog
TH1 * fMuchMuchDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:142
CbmTofDigi
Data class for expanded digital TOF information.
Definition: CbmTofDigi.h:38
CbmMcbm2019CheckDtInDet::fTrdTrdDiff
TH1 * fTrdTrdDiff
Definition: CbmMcbm2019CheckDtInDet.h:135
ECbmModuleId::kTrd
@ kTrd
Transition Radiation Detector.
CbmMcbm2019CheckDtInDet::ReInit
virtual InitStatus ReInit()
Definition: CbmMcbm2019CheckDtInDet.cxx:323
CbmMcbm2019CheckDtInDet::SetParContainers
virtual void SetParContainers()
Definition: CbmMcbm2019CheckDtInDet.cxx:45
CbmMcbm2019CheckDtInDet::fT0T0SameTime
TH1 * fT0T0SameTime
Definition: CbmMcbm2019CheckDtInDet.h:124
CbmMcbm2019CheckDtInDet::fTofTofSameTime
TH1 * fTofTofSameTime
Definition: CbmMcbm2019CheckDtInDet.h:128
CbmMcbm2019CheckDtInDet::fRichRichDiffPerChan
TH2 * fRichRichDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:154
CbmMcbm2019CheckDtInDet::fDigiMan
CbmDigiManager * fDigiMan
Definition: CbmMcbm2019CheckDtInDet.h:90
CbmMcbm2019CheckDtInDet::fMuchMuchDiff
TH1 * fMuchMuchDiff
Definition: CbmMcbm2019CheckDtInDet.h:134
GenerateLogBinArray
std::vector< double > GenerateLogBinArray(uint32_t uNbDecadesLog, uint32_t uNbStepsDecade, uint32_t uNbSubStepsInStep, uint32_t &uNbBinsLog)
Definition: CbmFlesHistosTools.cxx:6
CbmMcbm2019CheckDtInDet::Exec
virtual void Exec(Option_t *)
Definition: CbmMcbm2019CheckDtInDet.cxx:326
CbmMcbm2019CheckDtInDet::fPsdPsdDiffLog
TH1 * fPsdPsdDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:146
CbmMcbm2019CheckDtInDet::fuNbChanT0
UInt_t fuNbChanT0
User settings: Data correction parameters.
Definition: CbmMcbm2019CheckDtInDet.h:114
CbmDigiManager.h
CbmMcbm2019CheckDtInDet::fTrdTrdDiffLog
TH1 * fTrdTrdDiffLog
Definition: CbmMcbm2019CheckDtInDet.h:143
CbmMcbm2019CheckDtInDet::fuNbChanRich
UInt_t fuNbChanRich
Definition: CbmMcbm2019CheckDtInDet.h:119
CbmMcbm2019CheckDtInDet::fRichRichDiff
TH1 * fRichRichDiff
Definition: CbmMcbm2019CheckDtInDet.h:137
CbmFlesHistosTools.h
CbmMcbm2019CheckDtInDet::fT0T0DiffPerChan
TH2 * fT0T0DiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:149
ECbmModuleId::kMuch
@ kMuch
Muon detection system.
CbmMcbm2019CheckDtInDet::fPsdPsdSameTime
TH1 * fPsdPsdSameTime
Definition: CbmMcbm2019CheckDtInDet.h:130
ECbmModuleId::kPsd
@ kPsd
Projectile spectator detector.
CbmMcbm2019CheckDtInDet::fTofTofDiff
TH1 * fTofTofDiff
Definition: CbmMcbm2019CheckDtInDet.h:136
CbmMcbm2019CheckDtInDet::fPsdPsdDiff
TH1 * fPsdPsdDiff
Definition: CbmMcbm2019CheckDtInDet.h:138
CbmMcbm2019CheckDtInDet::fMuchMuchDiffPerChan
TH2 * fMuchMuchDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:151
CbmMcbm2019CheckDtInDet::fPsdPsdDiffPerChan
TH2 * fPsdPsdDiffPerChan
Definition: CbmMcbm2019CheckDtInDet.h:155
ECbmModuleId::kSts
@ kSts
Silicon Tracking System.
CbmMcbm2019CheckDtInDet::fStsStsSameTime
TH1 * fStsStsSameTime
Definition: CbmMcbm2019CheckDtInDet.h:125
CbmMcbm2019CheckDtInDet::CreateHistos
void CreateHistos()
Definition: CbmMcbm2019CheckDtInDet.cxx:114