43fTof400Digits(nullptr),
44fTof700Digits(nullptr),
47 fIn1 =
new TChain(
"BMN_DIGIT");
48 fIn2 =
new TChain(
"cbmsim");
49 fIn3 =
new TChain(
"cbmsim");
52 TString brName =
"EventHeader";
56 fIn1->Add(in1.Data());
57 fIn1->SetBranchAddress(
"STRIPGEM", &fGemDigits);
58 fIn1->SetBranchAddress(
"MYSILICON", &fSilDigits);
59 fIn1->SetBranchAddress(brName.Data(), &fHeader1);
63 fIn2->Add(in2.Data());
64 fIn2->SetBranchAddress(
"ZDC", &fZdcDigits);
65 fIn2->SetBranchAddress(brName.Data(), &fHeader2);
69 fIn3->Add(in3.Data());
70 fIn3->SetBranchAddress(
"T0", &fT0Digits);
71 fIn3->SetBranchAddress(
"BC1", &fBC1Digits);
72 fIn3->SetBranchAddress(
"BC2", &fBC2Digits);
73 fIn3->SetBranchAddress(
"VETO", &fVetoDigits);
74 fIn3->SetBranchAddress(
"FD", &fFdDigits);
75 fIn3->SetBranchAddress(
"BD", &fBdDigits);
76 fIn3->SetBranchAddress(
"MWPC", &fMwpcDigits);
77 fIn3->SetBranchAddress(
"DCH", &fDchDigits);
78 fIn3->SetBranchAddress(
"TOF400", &fTof400Digits);
79 fIn3->SetBranchAddress(
"TOF700", &fTof700Digits);
80 fIn3->SetBranchAddress(
"ECAL", &fEcalDigits);
81 fIn3->SetBranchAddress(brName.Data(), &fHeader3);
109fTof400Digits(nullptr),
110fTof700Digits(nullptr),
135 fIn1 =
new TChain(
"BMN_DIGIT");
136 fIn2 =
new TChain(
"cbmsim");
137 fIn3 =
new TChain(
"bmndata");
139 TString brName =
"EventHeader";
142 if (!in[0].IsNull()) {
143 fIn1->Add(in[0].Data());
144 fIn1->SetBranchAddress(
"STRIPGEM", &fGemDigits);
145 fIn1->SetBranchAddress(
"MYSILICON", &fSilDigits);
146 fIn1->SetBranchAddress(
"MWPC", &fMwpcDigits);
147 fIn1->SetBranchAddress(
"DCH", &fDchDigits);
148 fIn1->SetBranchAddress(
"TOF400", &fTof400Digits);
149 fIn1->SetBranchAddress(
"ECAL", &fEcalDigits);
150 fIn1->SetBranchAddress(brName.Data(), &fHeader1);
153 if (!in[1].IsNull()) {
154 fIn2->Add(in[1].Data());
155 fIn2->SetBranchAddress(
"BC1", &fBC1Digits);
156 fIn2->SetBranchAddress(
"BC2", &fBC2Digits);
157 fIn2->SetBranchAddress(
"BC3", &fBC3Digits);
158 fIn2->SetBranchAddress(
"VC", &fVetoDigits);
159 fIn2->SetBranchAddress(
"Si", &fSiDigits);
160 fIn2->SetBranchAddress(
"BD", &fBdDigits);
161 fIn2->SetBranchAddress(
"ZDC", &fZdcDigits);
162 fIn2->SetBranchAddress(brName.Data(), &fHeader2);
165 if (!in[2].IsNull()) {
166 fIn3->Add(in[2].Data());
167 fIn3->SetBranchAddress(
"TOF700", &fTof700Digits);
168 fIn3->SetBranchAddress(brName.Data(), &fHeader3Obj);
192fBC1TQDCDigits(nullptr),
193fBC2TQDCDigits(nullptr),
194fBC3TQDCDigits(nullptr),
195fBC4TQDCDigits(nullptr),
204fX1LTQDCDigits(nullptr),
205fX2LTQDCDigits(nullptr),
206fY1LTQDCDigits(nullptr),
207fY2LTQDCDigits(nullptr),
208fX1RTQDCDigits(nullptr),
209fX2RTQDCDigits(nullptr),
210fY1RTQDCDigits(nullptr),
211fY2RTQDCDigits(nullptr),
213fVetoTQDCDigits(nullptr),
214fTof700Digits(nullptr),
220fTof400Digits(nullptr),
269 fIn1 =
new TChain(
"BMN_DIGIT");
270 fIn2 =
new TChain(
"bmndata");
271 fIn3 =
new TChain(
"bmndata");
273 if (!files[0].IsNull()) {
274 fIn1->Add(files[0].Data());
275 fIn1->SetBranchAddress(
"EventHeader", &fHeader1);
276 fIn1->SetBranchAddress(
"STRIPGEM", &fGemDigits);
277 fIn1->SetBranchAddress(
"MYSILICON", &fSilDigits);
280 if (!files[1].IsNull()) {
281 fIn2->Add(files[1].Data());
282 fIn2->SetBranchAddress(
"BmnEventHeader.", &fHeader2Obj);
283 fIn2->SetBranchAddress(
"BC1", &fBC1Digits);
284 fIn2->SetBranchAddress(
"BC2", &fBC2Digits);
285 fIn2->SetBranchAddress(
"BC3", &fBC3Digits);
286 fIn2->SetBranchAddress(
"BC4", &fBC4Digits);
287 fIn2->SetBranchAddress(
"TQDC_BC1", &fBC1TQDCDigits);
288 fIn2->SetBranchAddress(
"TQDC_BC2", &fBC2TQDCDigits);
289 fIn2->SetBranchAddress(
"TQDC_BC3", &fBC3TQDCDigits);
290 fIn2->SetBranchAddress(
"TQDC_BC4", &fBC4TQDCDigits);
292 fIn2->SetBranchAddress(
"X1_Left", &fX1LDigits);
293 fIn2->SetBranchAddress(
"X2_Left", &fX2LDigits);
294 fIn2->SetBranchAddress(
"Y1_Left", &fY1LDigits);
295 fIn2->SetBranchAddress(
"Y2_Left", &fY2LDigits);
296 fIn2->SetBranchAddress(
"X1_Right", &fX1RDigits);
297 fIn2->SetBranchAddress(
"X2_Right", &fX2RDigits);
298 fIn2->SetBranchAddress(
"Y1_Right", &fY1RDigits);
299 fIn2->SetBranchAddress(
"Y2_Right", &fY2RDigits);
300 fIn2->SetBranchAddress(
"TQDC_X1_Left", &fX1LTQDCDigits);
301 fIn2->SetBranchAddress(
"TQDC_X2_Left", &fX2LTQDCDigits);
302 fIn2->SetBranchAddress(
"TQDC_Y1_Left", &fY1LTQDCDigits);
303 fIn2->SetBranchAddress(
"TQDC_Y2_Left", &fY2LTQDCDigits);
304 fIn2->SetBranchAddress(
"TQDC_X1_Right", &fX1RTQDCDigits);
305 fIn2->SetBranchAddress(
"TQDC_X2_Right", &fX2RTQDCDigits);
306 fIn2->SetBranchAddress(
"TQDC_Y1_Right", &fY1RTQDCDigits);
307 fIn2->SetBranchAddress(
"TQDC_Y2_Right", &fY2RTQDCDigits);
309 fIn2->SetBranchAddress(
"VC", &fVetoDigits);
310 fIn2->SetBranchAddress(
"TQDC_VC", &fVetoTQDCDigits);
312 fIn2->SetBranchAddress(
"ZDC", &fZdcDigits);
313 fIn2->SetBranchAddress(
"TOF700", &fTof700Digits);
316 if (!files[2].IsNull()) {
317 fIn3->Add(files[2].Data());
318 fIn3->SetBranchAddress(
"EventHeader", &fHeader3);
319 fIn3->SetBranchAddress(
"MWPC", &fMwpcDigits);
320 fIn3->SetBranchAddress(
"DCH", &fDchDigits);
321 fIn3->SetBranchAddress(
"ECAL", &fEcalDigits);
322 fIn3->SetBranchAddress(
"TOF400", &fTof400Digits);
350fTof400Digits(nullptr),
351fTof700Digits(nullptr),
373 nDets = files.size();
375 isRun6 = (nDets == 14) ? kTRUE : kFALSE;
376 isRun7 = (nDets == 15) ? kTRUE : kFALSE;
377 isSrc = (nDets == 35) ? kTRUE : kFALSE;
379 if (!isRun6 && !isRun7 && !isSrc)
382 fBC1Digits =
new TClonesArray(
"BmnTrigDigit");
383 fBC2Digits =
new TClonesArray(
"BmnTrigDigit");
384 fVetoDigits =
new TClonesArray(
"BmnTrigDigit");
385 fBdDigits =
new TClonesArray(
"BmnTrigDigit");
386 fZdcDigits =
new TClonesArray(
"BmnZDCDigit");
387 fGemDigits =
new TClonesArray(
"BmnGemStripDigit");
388 fSilDigits =
new TClonesArray(
"BmnSiliconDigit");
389 fMwpcDigits =
new TClonesArray(
"BmnMwpcDigit");
390 fDchDigits =
new TClonesArray(
"BmnDchDigit");
391 fTof400Digits =
new TClonesArray(
"BmnTof1Digit");
392 fTof700Digits =
new TClonesArray(
"BmnTof2Digit");
393 fEcalDigits =
new TClonesArray(
"BmnECALDigit");
395 if (isRun6 && !isSrc) {
396 fT0Digits =
new TClonesArray(
"BmnTrigDigit");
397 fFdDigits =
new TClonesArray(
"BmnTrigDigit");
400 if (isRun7 && !isSrc) {
401 fBC3Digits =
new TClonesArray(
"BmnTrigDigit");
402 fSiDigits =
new TClonesArray(
"BmnTrigDigit");
403 fCscDigits =
new TClonesArray(
"BmnCSCDigit");
407 fCscDigits =
new TClonesArray(
"BmnCSCDigit");
408 fBC3Digits =
new TClonesArray(
"BmnTrigDigit");
409 fBC4Digits =
new TClonesArray(
"BmnTrigDigit");
411 fVetoTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
413 fX1LDigits =
new TClonesArray(
"BmnTrigDigit");
414 fX2LDigits =
new TClonesArray(
"BmnTrigDigit");
415 fY1LDigits =
new TClonesArray(
"BmnTrigDigit");
416 fY2LDigits =
new TClonesArray(
"BmnTrigDigit");
417 fX1RDigits =
new TClonesArray(
"BmnTrigDigit");
418 fX2RDigits =
new TClonesArray(
"BmnTrigDigit");
419 fY1RDigits =
new TClonesArray(
"BmnTrigDigit");
420 fY2RDigits =
new TClonesArray(
"BmnTrigDigit");
422 fX1LTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
423 fX2LTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
424 fY1LTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
425 fY2LTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
426 fX1RTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
427 fX2RTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
428 fY1RTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
429 fY2RTQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
431 fBC1TQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
432 fBC2TQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
433 fBC3TQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
434 fBC4TQDCDigits =
new TClonesArray(
"BmnTrigWaveDigit");
437 TString detsRun6[] = {
"GEM",
"SILICON",
"ZDC",
"T0",
"BC1",
"BC2",
"VETO",
"FD",
"BD",
"MWPC",
"DCH",
"TOF400",
"TOF700",
"ECAL"};
438 TString detsRun7[] = {
"BC1",
"BC2",
"BC3",
"VC",
"Si",
"BD",
"ZDC",
"GEM",
"SILICON",
"MWPC",
"DCH",
"TOF400",
"ECAL",
"CSC",
"TOF700"};
439 TString detsRun7Src[] = {
"GEM",
"SILICON",
"CSC",
440 "BC1",
"BC2",
"BC3",
"BC4",
441 "TQDC_BC1",
"TQDC_BC2",
"TQDC_BC3",
"TQDC_BC4",
442 "X1L",
"X2L",
"Y1L",
"Y2L",
"X1R",
"X2R",
"Y1R",
"Y2R",
443 "TQDC_X1L",
"TQDC_X2L",
"TQDC_Y1L",
"TQDC_Y2L",
"TQDC_X1R",
"TQDC_X2R",
"TQDC_Y1R",
"TQDC_Y2R",
446 "MWPC",
"DCH",
"TOF400",
"ECAL"};
448 TClonesArray * inArrsRun6[] = {fGemDigits, fSilDigits, fZdcDigits, fT0Digits, fBC1Digits, fBC2Digits, fVetoDigits, fFdDigits, fBdDigits,
449 fMwpcDigits, fDchDigits, fTof400Digits, fTof700Digits, fEcalDigits};
451 TClonesArray * inArrsRun7[] = {fBC1Digits, fBC2Digits, fBC3Digits, fVetoDigits, fSiDigits, fBdDigits, fZdcDigits,
452 fGemDigits, fSilDigits, fMwpcDigits, fDchDigits, fTof400Digits, fEcalDigits, fCscDigits, fTof700Digits};
454 TClonesArray * inArrsRun7Src[] = {fGemDigits, fSilDigits, fCscDigits,
455 fBC1Digits, fBC2Digits, fBC3Digits, fBC4Digits,
456 fBC1TQDCDigits, fBC2TQDCDigits, fBC3TQDCDigits, fBC4TQDCDigits,
457 fX1LDigits, fX2LDigits, fY1LDigits, fY2LDigits, fX1RDigits, fX2RDigits, fY1RDigits, fY2RDigits,
458 fX1LTQDCDigits, fX2LTQDCDigits, fY1LTQDCDigits, fY2LTQDCDigits, fX1RTQDCDigits, fX2RTQDCDigits, fY1RTQDCDigits, fY2RTQDCDigits,
459 fVetoDigits, fVetoTQDCDigits,
460 fTof700Digits, fZdcDigits, fMwpcDigits, fDchDigits, fTof400Digits, fEcalDigits};
462 fInArrs =
new TClonesArray*[nDets];
464 fInFiles =
new TChain*[nDets];
466 for (Int_t iDet = 0; iDet < nDets; iDet++) {
469 fInArrs[iDet] = (isRun6) ? inArrsRun6[iDet] : inArrsRun7[iDet];
471 fInArrs[iDet] = inArrsRun7Src[iDet];
472 fInFiles[iDet] =
new TChain(
"bmndata");
473 fInFiles[iDet]->Add(files[iDet].Data());
475 fInFiles[iDet]->SetBranchAddress((isRun6 ? detsRun6[iDet] : detsRun7[iDet]).Data(), &fInArrs[iDet]);
477 fInFiles[iDet]->SetBranchAddress(detsRun7Src[iDet].Data(), &fInArrs[iDet]);
478 fInFiles[iDet]->SetBranchAddress(
"BmnEventHeader.", &fHeaders[iDet]);
481 CreateOutputFile(out);
484void BmnDigiMergeTask::CreateOutputFiles() {
487 UInt_t runId = evHead->GetRunId();
490 nDets = isRun7 ? 15 : isRun6 ? 14 :
throw;
494 TString detsRun6[] = {
"GEM",
"SILICON",
"ZDC",
"T0",
"BC1",
"BC2",
"VETO",
"FD",
"BD",
"MWPC",
"DCH",
"TOF400",
"TOF700",
"ECAL"};
495 TString detsRun7[] = {
"BC1",
"BC2",
"BC3",
"VC",
"Si",
"BD",
"ZDC",
"GEM",
"SILICON",
"MWPC",
"DCH",
"TOF400",
"ECAL",
"CSC",
"TOF700"};
496 TString detsRun7Src[] = {
"GEM",
"SILICON",
"CSC",
497 "BC1",
"BC2",
"BC3",
"BC4",
498 "TQDC_BC1",
"TQDC_BC2",
"TQDC_BC3",
"TQDC_BC4",
499 "X1L",
"X2L",
"Y1L",
"Y2L",
"X1R",
"X2R",
"Y1R",
"Y2R",
500 "TQDC_X1L",
"TQDC_X2L",
"TQDC_Y1L",
"TQDC_Y2L",
"TQDC_X1R",
"TQDC_X2R",
"TQDC_Y1R",
"TQDC_Y2R",
503 "MWPC",
"DCH",
"TOF400",
"ECAL"};
505 fOutFiles =
new TFile*[nDets];
506 fOutTrees =
new TTree*[nDets];
509 fBC1 =
new TClonesArray(
"BmnTrigDigit");
510 fBC2 =
new TClonesArray(
"BmnTrigDigit");
511 fBC3 =
new TClonesArray(
"BmnTrigDigit");
512 fVeto =
new TClonesArray(
"BmnTrigDigit");
515 fGem =
new TClonesArray(
"BmnGemStripDigit");
516 fSil =
new TClonesArray(
"BmnSiliconDigit");
517 fMwpc =
new TClonesArray(
"BmnMwpcDigit");
518 fDch =
new TClonesArray(
"BmnDchDigit");
519 fTof400 =
new TClonesArray(
"BmnTof1Digit");
520 fTof700 =
new TClonesArray(
"BmnTof2Digit");
521 fEcal =
new TClonesArray(
"BmnECALDigit");
522 fZdc =
new TClonesArray(
"BmnZDCDigit");
525 fBd =
new TClonesArray(
"BmnTrigDigit");
527 fT0 =
new TClonesArray(
"BmnTrigDigit");
528 fFd =
new TClonesArray(
"BmnTrigDigit");
532 fSi =
new TClonesArray(
"BmnTrigDigit");
533 fCsc =
new TClonesArray(
"BmnCSCDigit");
537 fBC4 =
new TClonesArray(
"BmnTrigDigit");
539 fBC1TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
540 fBC2TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
541 fBC3TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
542 fBC4TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
544 fX1L =
new TClonesArray(
"BmnTrigDigit");
545 fX2L =
new TClonesArray(
"BmnTrigDigit");
546 fY1L =
new TClonesArray(
"BmnTrigDigit");
547 fY2L =
new TClonesArray(
"BmnTrigDigit");
548 fX1R =
new TClonesArray(
"BmnTrigDigit");
549 fX2R =
new TClonesArray(
"BmnTrigDigit");
550 fY1R =
new TClonesArray(
"BmnTrigDigit");
551 fY2R =
new TClonesArray(
"BmnTrigDigit");
553 fX1LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
554 fX2LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
555 fY1LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
556 fY2LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
557 fX1RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
558 fX2RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
559 fY1RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
560 fY2RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
562 fVetoTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
565 fCsc =
new TClonesArray(
"BmnCSCDigit");
570 TClonesArray * arrRun6[] = {fGem, fSil, fZdc, fT0, fBC1, fBC2, fVeto, fFd, fBd, fMwpc, fDch, fTof400, fTof700, fEcal};
571 TClonesArray * arrRun7[] = {fBC1, fBC2, fBC3, fVeto, fSi, fBd, fZdc, fGem, fSil, fMwpc, fDch, fTof400, fEcal, fCsc, fTof700};
572 TClonesArray * arrRun7Src[] = {fGem, fSil, fCsc, fBC1, fBC2, fBC3, fBC4, fBC1TQDC, fBC2TQDC, fBC3TQDC, fBC4TQDC,
573 fX1L, fX2L, fY1L, fY2L, fX1R, fX2R, fY1R, fY2R, fX1LTQDC, fX2LTQDC, fY1LTQDC, fY2LTQDC, fX1RTQDC, fX2RTQDC, fY1RTQDC, fY2RTQDC,
574 fVeto, fVetoTQDC, fTof700, fZdc, fMwpc, fDch, fTof400, fEcal};
576 fOutArrs =
new TClonesArray*[nDets];
577 for (Int_t iDet = 0; iDet < nDets; iDet++) {
579 fOutArrs[iDet] = isRun6 ? arrRun6[iDet] : arrRun7[iDet];
581 fOutArrs[iDet] = arrRun7Src[iDet];
584 for (Int_t iDet = 0; iDet < nDets; iDet++) {
586 fOutFiles[iDet] =
new TFile(TString((isRun6 ? detsRun6[iDet] : detsRun7[iDet]) + TString::Format(
"_%d.root", runId)).Data(),
"recreate");
588 fOutFiles[iDet] =
new TFile(TString(detsRun7Src[iDet] + TString::Format(
"_%d.root", runId)).Data(),
"recreate");
589 fOutTrees[iDet] =
new TTree(
"bmndata",
"bmndata");
590 fOutTrees[iDet]->Branch(
"BmnEventHeader.", &fHeaderOut);
592 fOutTrees[iDet]->Branch((isRun6 ? detsRun6[iDet] : detsRun7[iDet]).Data(), &fOutArrs[iDet]);
594 fOutTrees[iDet]->Branch(detsRun7Src[iDet].Data(), &fOutArrs[iDet]);
598void BmnDigiMergeTask::CreateOutputFile(TString out) {
599 fOutFile =
new TFile(out.Data(),
"recreate");
600 fOutTree =
new TTree(
"bmndata",
"bmndata");
603 fOutTree->Branch(
"BmnEventHeader.", &fHeaderOut);
605 fGem =
new TClonesArray(
"BmnGemStripDigit");
606 fOutTree->Branch(
"GEM", &fGem);
608 fSil =
new TClonesArray(
"BmnSiliconDigit");
609 fOutTree->Branch(
"SILICON", &fSil);
611 fZdc =
new TClonesArray(
"BmnZDCDigit");
612 fOutTree->Branch(
"ZDC", &fZdc);
614 fBC1 =
new TClonesArray(
"BmnTrigDigit");
615 fOutTree->Branch(
"BC1", &fBC1);
617 fBC2 =
new TClonesArray(
"BmnTrigDigit");
618 fOutTree->Branch(
"BC2", &fBC2);
620 fVeto =
new TClonesArray(
"BmnTrigDigit");
621 fOutTree->Branch(
"VETO", &fVeto);
623 fBd =
new TClonesArray(
"BmnTrigDigit");
624 fOutTree->Branch(
"BD", &fBd);
626 fMwpc =
new TClonesArray(
"BmnMwpcDigit");
627 fDch =
new TClonesArray(
"BmnDchDigit");
628 fTof400 =
new TClonesArray(
"BmnTof1Digit");
629 fTof700 =
new TClonesArray(
"BmnTof2Digit");
630 fEcal =
new TClonesArray(
"BmnECALDigit");
631 fOutTree->Branch(
"MWPC", &fMwpc);
632 fOutTree->Branch(
"DCH", &fDch);
633 fOutTree->Branch(
"TOF400", &fTof400);
634 fOutTree->Branch(
"TOF700", &fTof700);
635 fOutTree->Branch(
"ECAL", &fEcal);
637 if (isRun6 && !isSrc) {
638 fT0 =
new TClonesArray(
"BmnTrigDigit");
639 fOutTree->Branch(
"T0", &fT0);
640 fFd =
new TClonesArray(
"BmnTrigDigit");
641 fOutTree->Branch(
"FD", &fFd);
644 if (isRun7 && !isSrc) {
645 fCsc =
new TClonesArray(
"BmnCSCDigit");
646 fOutTree->Branch(
"CSC", &fCsc);
647 fBC3 =
new TClonesArray(
"BmnTrigDigit");
648 fOutTree->Branch(
"BC3", &fBC3);
649 fSi =
new TClonesArray(
"BmnTrigDigit");
650 fOutTree->Branch(
"Si", &fSi);
654 fCsc =
new TClonesArray(
"BmnCSCDigit");
655 fOutTree->Branch(
"CSC", &fCsc);
657 fBC3 =
new TClonesArray(
"BmnTrigDigit");
658 fOutTree->Branch(
"BC3", &fBC3);
660 fBC4 =
new TClonesArray(
"BmnTrigDigit");
661 fOutTree->Branch(
"BC4", &fBC4);
663 fVetoTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
664 fOutTree->Branch(
"TQDC_VETO", &fVetoTQDC);
666 fX1L =
new TClonesArray(
"BmnTrigDigit");
667 fOutTree->Branch(
"X1L", &fX1L);
668 fX2L =
new TClonesArray(
"BmnTrigDigit");
669 fOutTree->Branch(
"X2L", &fX2L);
670 fY1L =
new TClonesArray(
"BmnTrigDigit");
671 fOutTree->Branch(
"Y1L", &fY1L);
672 fY2L =
new TClonesArray(
"BmnTrigDigit");
673 fOutTree->Branch(
"Y2L", &fY2L);
674 fX1R =
new TClonesArray(
"BmnTrigDigit");
675 fOutTree->Branch(
"X1R", &fX1R);
676 fX2R =
new TClonesArray(
"BmnTrigDigit");
677 fOutTree->Branch(
"X2R", &fX2R);
678 fY1R =
new TClonesArray(
"BmnTrigDigit");
679 fOutTree->Branch(
"Y1R", &fY1R);
680 fY2R =
new TClonesArray(
"BmnTrigDigit");
681 fOutTree->Branch(
"Y2R", &fY2R);
683 fX1LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
684 fOutTree->Branch(
"TQDC_X1L", &fX1LTQDC);
685 fX2LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
686 fOutTree->Branch(
"TQDC_X2L", &fX2LTQDC);
687 fY1LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
688 fOutTree->Branch(
"TQDC_Y1L", &fY1LTQDC);
689 fY2LTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
690 fOutTree->Branch(
"TQDC_Y2L", &fY2LTQDC);
691 fX1RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
692 fOutTree->Branch(
"TQDC_X1R", &fX1RTQDC);
693 fX2RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
694 fOutTree->Branch(
"TQDC_X2R", &fX2RTQDC);
695 fY1RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
696 fOutTree->Branch(
"TQDC_Y1R", &fY1RTQDC);
697 fY2RTQDC =
new TClonesArray(
"BmnTrigWaveDigit");
698 fOutTree->Branch(
"TQDC_Y2R", &fY2RTQDC);
700 fBC1TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
701 fOutTree->Branch(
"TQDC_BC1", &fBC1TQDC);
702 fBC2TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
703 fOutTree->Branch(
"TQDC_BC2", &fBC2TQDC);
704 fBC3TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
705 fOutTree->Branch(
"TQDC_BC3", &fBC3TQDC);
706 fBC4TQDC =
new TClonesArray(
"BmnTrigWaveDigit");
707 fOutTree->Branch(
"TQDC_BC4", &fBC4TQDC);
710 TClonesArray * arrRun6[] = {fGem, fSil, fZdc, fT0, fBC1, fBC2, fVeto, fFd, fBd, fMwpc, fDch, fTof400, fTof700, fEcal};
711 TClonesArray * arrRun7[] = {fBC1, fBC2, fBC3, fVeto, fSi, fBd, fZdc, fGem, fSil, fMwpc, fDch, fTof400, fEcal, fCsc, fTof700};
712 TClonesArray * arrRun7Src[] = {fGem, fSil, fCsc, fBC1, fBC2, fBC3, fBC4, fBC1TQDC, fBC2TQDC, fBC3TQDC, fBC4TQDC,
713 fX1L, fX2L, fY1L, fY2L, fX1R, fX2R, fY1R, fY2R, fX1LTQDC, fX2LTQDC, fY1LTQDC, fY2LTQDC, fX1RTQDC, fX2RTQDC, fY1RTQDC, fY2RTQDC,
714 fVeto, fVetoTQDC, fTof700, fZdc, fMwpc, fDch, fTof400, fEcal};
716 fOutArrs =
new TClonesArray*[nDets];
717 for (Int_t iDet = 0; iDet < nDets; iDet++) {
719 fOutArrs[iDet] = isRun6 ? arrRun6[iDet] : arrRun7[iDet];
721 fOutArrs[iDet] = arrRun7Src[iDet];
725void BmnDigiMergeTask::SplitToDetectorsSrc() {
726 map <Int_t, TClonesArray*> detsAndOutTrees1;
727 map <Int_t, TClonesArray*> detsAndOutTrees2;
728 map <Int_t, TClonesArray*> detsAndOutTrees3;
730 for (Int_t iDet = 0; iDet < 3; iDet++)
731 detsAndOutTrees1[iDet] = fOutArrs[iDet];
733 for (Int_t iDet = 3; iDet < 31; iDet++)
734 detsAndOutTrees2[iDet] = fOutArrs[iDet];
736 for (Int_t iDet = 31; iDet < nDets; iDet++)
737 detsAndOutTrees3[iDet] = fOutArrs[iDet];
739 for (Int_t iEntry = 0; iEntry < fIn1->GetEntries(); iEntry++) {
740 fIn1->GetEntry(iEntry);
742 if (iEntry % 10000 == 0)
743 cout <<
"Event# " << iEntry << endl;
745 for (
auto it : detsAndOutTrees1)
749 fHeaderOut->SetRunId(
header->GetRunId());
753 Int_t* statsGem =
new Int_t[fDetectorGEM->
GetNStations()];
754 Int_t* statsSil =
new Int_t[fDetectorSI->
GetNStations()];
756 Int_t* statsGemPermut =
new Int_t[fDetectorGEM->
GetNStations()];
757 Int_t* statsSilPermut =
new Int_t[fDetectorSI->
GetNStations()];
759 for (Int_t iStat = 0; iStat < fDetectorGEM->
GetNStations(); iStat++) {
760 statsGem[iStat] = -1;
761 statsGemPermut[iStat] = -1;
764 for (Int_t iStat = 0; iStat < fDetectorSI->
GetNStations(); iStat++) {
765 statsSil[iStat] = -1;
766 statsSilPermut[iStat] = -1;
769 Run7(statsGem, statsSil, statsGemPermut, statsSilPermut);
771 for (Int_t iStat = 0; iStat < fDetectorGEM->
GetNStations(); iStat++)
772 fGemStats[statsGem[iStat]] = statsGemPermut[iStat];
774 for (Int_t iStat = 0; iStat < fDetectorSI->
GetNStations(); iStat++)
775 fSilStats[statsSil[iStat]] = statsSilPermut[iStat];
778 for (UInt_t iDigi = 0; iDigi < fGemDigits->GetEntriesFast(); iDigi++) {
788 if (stat == 5 || stat == 7 || stat == 9) {
794 cout <<
"Something went wrong!" << endl;
803 Int_t strip = digCsc.GetStripNumber() - 1;
804 Double_t signal = digCsc.GetStripSignal();
807 if (digCsc.GetModule() == 0) {
810 if (digCsc.GetStripLayer() == 2)
811 digCsc.SetStripLayer(0);
812 else if (digCsc.GetStripLayer() == 3)
813 digCsc.SetStripLayer(1);
814 else if (digCsc.GetStripLayer() == 0)
815 digCsc.SetStripLayer(2);
816 else if (digCsc.GetStripLayer() == 1)
817 digCsc.SetStripLayer(3);
819 cout <<
"Something went wrong!" << endl;
822 }
else if (digCsc.GetModule() == 1)
826 cout <<
"Something went wrong!" << endl;
829 new ((*fCsc)[fCsc->GetEntriesFast()])
BmnCSCDigit(0, digCsc.GetModule(), digCsc.GetStripLayer(), strip, signal);
834 for (UInt_t iDigi = 0; iDigi < fSilDigits->GetEntriesFast(); iDigi++) {
837 dig->
SetStation(SiliconStatPermutation(stat));
846 new((*fSil)[fSil->GetEntriesFast()])
BmnSiliconDigit(stat, mod, layer, strip, signal);
849 for (
auto it : detsAndOutTrees1)
850 fOutTrees[it.first]->Fill();
853 for (Int_t iEntry = 0; iEntry < fIn2->GetEntries(); iEntry++) {
854 fIn2->GetEntry(iEntry);
856 if (iEntry % 10000 == 0)
857 cout <<
"Event# " << iEntry << endl;
859 for (
auto it : detsAndOutTrees2)
862 fHeaderOut->SetRunId(fHeader2Obj->GetRunId());
867 FillDetDigi <BmnTof2Digit> (fTof700Digits, fTof700);
870 FillDetDigi <BmnZDCDigit> (fZdcDigits, fZdc);
873 const Int_t nTrigs = 13;
874 const Int_t nTqdcTrigs = 13;
876 TClonesArray * trigsIn[nTrigs] = {fBC1Digits, fBC2Digits, fBC3Digits, fBC4Digits,
877 fX1LDigits, fX2LDigits, fY1LDigits, fY2LDigits, fX1RDigits, fX2RDigits, fY1RDigits, fY2RDigits, fVetoDigits};
878 TClonesArray * trigsOut[nTrigs] = {fBC1, fBC2, fBC3, fBC4, fX1L, fX2L, fY1L, fY2L, fX1R, fX2R, fY1R, fY2R, fVeto};
879 TClonesArray * tqdcTrigsIn[nTrigs] = {fBC1TQDCDigits, fBC2TQDCDigits, fBC3TQDCDigits, fBC4TQDCDigits,
880 fX1LTQDCDigits, fX2LTQDCDigits, fY1LTQDCDigits, fY2LTQDCDigits, fX1RTQDCDigits, fX2RTQDCDigits, fY1RTQDCDigits, fY2RTQDCDigits, fVetoTQDCDigits};
881 TClonesArray * tqdcTrigsOut[nTrigs] = {fBC1TQDC, fBC2TQDC, fBC3TQDC, fBC4TQDC,
882 fX1LTQDC, fX2LTQDC, fY1LTQDC, fY2LTQDC, fX1RTQDC, fX2RTQDC, fY1RTQDC, fY2RTQDC, fVetoTQDC};
884 for (Int_t iTrig = 0; iTrig < nTrigs; iTrig++)
886 FillDetDigi <BmnTrigDigit> (trigsIn[iTrig], trigsOut[iTrig]);
888 for (Int_t iTqdcTrig = 0; iTqdcTrig < nTqdcTrigs; iTqdcTrig++)
889 if (tqdcTrigsIn[iTqdcTrig])
890 FillDetDigi <BmnTrigWaveDigit> (tqdcTrigsIn[iTqdcTrig], tqdcTrigsOut[iTqdcTrig]);
892 for (
auto it : detsAndOutTrees2)
893 fOutTrees[it.first]->Fill();
896 for (Int_t iEntry = 0; iEntry < fIn3->GetEntries(); iEntry++) {
897 fIn3->GetEntry(iEntry);
899 if (iEntry % 10000 == 0)
900 cout <<
"Event# " << iEntry << endl;
902 for (
auto it : detsAndOutTrees3)
906 fHeaderOut->SetRunId(
header->GetRunId());
910 FillDetDigi <BmnMwpcDigit> (fMwpcDigits, fMwpc);
913 FillDetDigi <BmnDchDigit> (fDchDigits, fDch);
916 FillDetDigi <BmnTof1Digit> (fTof400Digits, fTof400);
919 FillDetDigi <BmnECALDigit> (fEcalDigits, fEcal);
921 for (
auto it : detsAndOutTrees3)
922 fOutTrees[it.first]->Fill();
926void BmnDigiMergeTask::SplitToDetectorsRun6() {
927 map <Int_t, TClonesArray*> detsAndOutTrees1;
928 map <Int_t, TClonesArray*> detsAndOutTrees2;
929 map <Int_t, TClonesArray*> detsAndOutTrees3;
931 for (Int_t iDet = 0; iDet < 2; iDet++)
932 detsAndOutTrees1[iDet] = fOutArrs[iDet];
934 for (Int_t iDet = 2; iDet < 3; iDet++)
935 detsAndOutTrees2[iDet] = fOutArrs[iDet];
937 for (Int_t iDet = 3; iDet < nDets; iDet++)
938 detsAndOutTrees3[iDet] = fOutArrs[iDet];
940 for (Int_t iEntry = 0; iEntry < fIn1->GetEntries(); iEntry++) {
941 fIn1->GetEntry(iEntry);
943 if (iEntry % 10000 == 0)
944 cout <<
"Event# " << iEntry << endl;
946 for (
auto it : detsAndOutTrees1)
950 fHeaderOut->SetRunId(
header->GetRunId());
956 FillDetDigi <BmnGemStripDigit> (fGemDigits, fGem);
959 FillDetDigi <BmnSiliconDigit> (fSilDigits, fSil);
961 for (
auto it : detsAndOutTrees1)
962 fOutTrees[it.first]->Fill();
965 for (Int_t iEntry = 0; iEntry < fIn2->GetEntries(); iEntry++) {
966 fIn2->GetEntry(iEntry);
968 if (iEntry % 10000 == 0)
969 cout <<
"Event# " << iEntry << endl;
971 for (
auto it : detsAndOutTrees2)
975 fHeaderOut->SetRunId(
header->GetRunId());
979 FillDetDigi <BmnZDCDigit> (fZdcDigits, fZdc);
981 for (
auto it : detsAndOutTrees2)
982 fOutTrees[it.first]->Fill();
985 for (Int_t iEntry = 0; iEntry < fIn3->GetEntries(); iEntry++) {
986 fIn3->GetEntry(iEntry);
988 if (iEntry % 10000 == 0)
989 cout <<
"Event# " << iEntry << endl;
991 for (
auto it : detsAndOutTrees3)
995 fHeaderOut->SetRunId(
header->GetRunId());
999 const Int_t nTrigs = 6;
1000 TClonesArray * trigsIn[nTrigs] = {fT0Digits, fFdDigits, fBC1Digits, fBC2Digits, fVetoDigits, fBdDigits};
1001 TClonesArray * trigsOut[nTrigs] = {fT0, fFd, fBC1, fBC2, fVeto, fBd};
1003 for (Int_t iTrig = 0; iTrig < nTrigs; iTrig++)
1005 FillDetDigi <BmnTrigDigit> (trigsIn[iTrig], trigsOut[iTrig]);
1008 FillDetDigi <BmnMwpcDigit> (fMwpcDigits, fMwpc);
1011 FillDetDigi <BmnDchDigit> (fDchDigits, fDch);
1014 FillDetDigi <BmnTof1Digit> (fTof400Digits, fTof400);
1017 FillDetDigi <BmnTof2Digit> (fTof700Digits, fTof700);
1020 FillDetDigi <BmnECALDigit> (fEcalDigits, fEcal);
1022 for (
auto it : detsAndOutTrees3)
1023 fOutTrees[it.first]->Fill();
1027void BmnDigiMergeTask::SplitToDetectorsRun7() {
1029 map <Int_t, TClonesArray*> detsAndOutTrees1;
1030 map <Int_t, TClonesArray*> detsAndOutTrees2;
1031 map <Int_t, TClonesArray*> detsAndOutTrees3;
1033 for (Int_t iDet = 7; iDet < 14; iDet++)
1034 detsAndOutTrees1[iDet] = fOutArrs[iDet];
1036 for (Int_t iDet = 0; iDet < 7; iDet++)
1037 detsAndOutTrees2[iDet] = fOutArrs[iDet];
1039 for (Int_t iDet = 14; iDet < nDets; iDet++)
1040 detsAndOutTrees3[iDet] = fOutArrs[iDet];
1042 for (Int_t iEntry = 0; iEntry < fIn1->GetEntries(); iEntry++) {
1043 fIn1->GetEntry(iEntry);
1045 if (iEntry % 10000 == 0)
1046 cout <<
"Event# " << iEntry << endl;
1048 for (
auto it : detsAndOutTrees1)
1049 it.second->Delete();
1052 fHeaderOut->SetRunId(
header->GetRunId());
1056 Int_t* statsGem =
new Int_t[fDetectorGEM->
GetNStations()];
1057 Int_t* statsSil =
new Int_t[fDetectorSI->
GetNStations()];
1059 Int_t* statsGemPermut =
new Int_t[fDetectorGEM->
GetNStations()];
1060 Int_t* statsSilPermut =
new Int_t[fDetectorSI->
GetNStations()];
1062 for (Int_t iStat = 0; iStat < fDetectorGEM->
GetNStations(); iStat++) {
1063 statsGem[iStat] = -1;
1064 statsGemPermut[iStat] = -1;
1067 for (Int_t iStat = 0; iStat < fDetectorSI->
GetNStations(); iStat++) {
1068 statsSil[iStat] = -1;
1069 statsSilPermut[iStat] = -1;
1072 Run7(statsGem, statsSil, statsGemPermut, statsSilPermut);
1074 for (Int_t iStat = 0; iStat < fDetectorGEM->
GetNStations(); iStat++)
1075 fGemStats[statsGem[iStat]] = statsGemPermut[iStat];
1077 for (Int_t iStat = 0; iStat < fDetectorSI->
GetNStations(); iStat++)
1078 fSilStats[statsSil[iStat]] = statsSilPermut[iStat];
1081 for (UInt_t iDigi = 0; iDigi < fGemDigits->GetEntriesFast(); iDigi++) {
1094 if (stat == 0 || stat == 3 || stat == 5) {
1100 cout <<
"Something went wrong!" << endl;
1109 Int_t strip = digCsc.GetStripNumber() - 1;
1110 Double_t signal = digCsc.GetStripSignal();
1113 if (digCsc.GetModule() == 0) {
1114 digCsc.SetModule(1);
1116 if (digCsc.GetStripLayer() == 2)
1117 digCsc.SetStripLayer(0);
1118 else if (digCsc.GetStripLayer() == 3)
1119 digCsc.SetStripLayer(1);
1120 else if (digCsc.GetStripLayer() == 0)
1121 digCsc.SetStripLayer(2);
1122 else if (digCsc.GetStripLayer() == 1)
1123 digCsc.SetStripLayer(3);
1125 cout <<
"Something went wrong!" << endl;
1128 }
else if (digCsc.GetModule() == 1)
1129 digCsc.SetModule(0);
1132 cout <<
"Something went wrong!" << endl;
1135 new ((*fCsc)[fCsc->GetEntriesFast()])
BmnCSCDigit(0, digCsc.GetModule(), digCsc.GetStripLayer(), strip, signal);
1140 for (UInt_t iDigi = 0; iDigi < fSilDigits->GetEntriesFast(); iDigi++) {
1143 dig->
SetStation(SiliconStatPermutation(stat));
1157 FillDetDigi <BmnMwpcDigit> (fMwpcDigits, fMwpc);
1160 FillDetDigi <BmnDchDigit> (fDchDigits, fDch);
1163 FillDetDigi <BmnTof1Digit> (fTof400Digits, fTof400);
1166 FillDetDigi <BmnECALDigit> (fEcalDigits, fEcal);
1168 for (
auto it : detsAndOutTrees1)
1169 fOutTrees[it.first]->Fill();
1172 for (Int_t iEntry = 0; iEntry < fIn2->GetEntries(); iEntry++) {
1173 fIn2->GetEntry(iEntry);
1174 if (iEntry % 10000 == 0)
1175 cout <<
"Event# " << iEntry << endl;
1177 for (
auto it : detsAndOutTrees2)
1178 it.second->Delete();
1181 fHeaderOut->SetRunId(
header->GetRunId());
1185 const Int_t nTrigs = 6;
1186 TClonesArray * trigsIn[nTrigs] = {fBC1Digits, fBC2Digits, fBC3Digits, fVetoDigits, fSiDigits, fBdDigits};
1187 TClonesArray * trigsOut[nTrigs] = {fBC1, fBC2, fBC3, fVeto, fSi, fBd};
1189 for (Int_t iTrig = 0; iTrig < nTrigs; iTrig++)
1191 FillDetDigi <BmnTrigDigit> (trigsIn[iTrig], trigsOut[iTrig]);
1194 FillDetDigi <BmnZDCDigit> (fZdcDigits, fZdc);
1196 for (
auto it : detsAndOutTrees2)
1197 fOutTrees[it.first]->Fill();
1200 for (Int_t iEntry = 0; iEntry < fIn3->GetEntries(); iEntry++) {
1201 fIn3->GetEntry(iEntry);
1203 if (iEntry % 10000 == 0)
1204 cout <<
"Event# " << iEntry << endl;
1206 for (
auto it : detsAndOutTrees3)
1207 it.second->Delete();
1209 fHeaderOut->SetRunId(fHeader3Obj->GetRunId());
1213 FillDetDigi <BmnTof2Digit> (fTof700Digits, fTof700);
1215 for (
auto it : detsAndOutTrees3)
1216 fOutTrees[it.first]->Fill();
1221 vector <UInt_t> nums;
1222 for (Int_t iDet = 0; iDet < nDets; iDet++)
1223 nums.push_back(fInFiles[iDet]->GetEntries());
1225 maxEvId = *max_element(nums.begin(), nums.end()) + 100;
1227 evId_evNum =
new Long_t*[maxEvId];
1228 for (UInt_t iEle = 0; iEle < maxEvId; iEle++)
1229 evId_evNum[iEle] =
new Long_t[nDets];
1231 for (Long_t iEvId = 0; iEvId < maxEvId; iEvId++)
1232 for (Int_t iDet = 0; iDet < nDets; iDet++)
1233 evId_evNum[iEvId][iDet] = -1;
1235 for (Int_t iDet = 0; iDet < nDets; iDet++) {
1237 for (Int_t iEntry = 0; iEntry < fInFiles[iDet]->GetEntries(); iEntry++) {
1238 fInFiles[iDet]->GetEntry(iEntry);
1240 evId_evNum[header->GetEventId()][iDet] = iEntry;
1243 GlueEventsFromInputFiles();
1246void BmnDigiMergeTask::GlueEventsFromInputFiles() {
1247 for (UInt_t iEvId = 0; iEvId < maxEvId; iEvId++) {
1261 if (isRun6 && !isSrc) {
1266 if (isRun7 && !isSrc) {
1277 fVetoTQDC->Delete();
1303 for (Int_t iDet = 0; iDet < nDets; iDet++) {
1304 fHeaderOut->SetRunId(fHeaders[iDet]->GetRunId());
1305 fHeaderOut->
SetEventId(fHeaders[iDet]->GetEventId());
1307 if (evId_evNum[iEvId][iDet] % 1000 == 0)
1308 cout <<
"Det# " << iDet <<
" Event# " << evId_evNum[iEvId][iDet] << endl;
1310 fInFiles[iDet]->GetEntry(evId_evNum[iEvId][iDet]);
1312 fOutArrs[iDet]->AbsorbObjects(fInArrs[iDet]);
1319void BmnDigiMergeTask::Run7(Int_t* statsGem, Int_t* statsSil, Int_t* statsGemPermut, Int_t* statsSilPermut) {
1330 statsGemPermut[0] = 0;
1331 statsGemPermut[1] = 1;
1332 statsGemPermut[2] = 2;
1333 statsGemPermut[3] = 3;
1334 statsGemPermut[4] = 4;
1335 statsGemPermut[5] = 5;
1341 statsSilPermut[0] = 0;
1342 statsSilPermut[1] = 1;
1343 statsSilPermut[2] = 2;
1357 statsGemPermut[0] = 0;
1358 statsGemPermut[1] = 1;
1359 statsGemPermut[2] = 2;
1360 statsGemPermut[3] = 3;
1361 statsGemPermut[4] = 4;
1362 statsGemPermut[5] = 5;
1363 statsGemPermut[6] = 6;
1364 statsGemPermut[7] = 7;
1365 statsGemPermut[8] = 8;
1366 statsGemPermut[9] = 9;
1372 statsSilPermut[0] = 0;
1373 statsSilPermut[1] = 1;
1374 statsSilPermut[2] = 2;
1376 cout <<
"Configuration not defined!" << endl;
1381void BmnDigiMergeTask::CreateGeometries() {
1383 TString gPathConfig = gSystem->Getenv(
"VMCWORKDIR");
1384 TString confSi = (!isSrc) ?
"SiliconRunSpring2018.xml" : isSrc ?
"SiliconRunSRCSpring2018.xml" :
"";
1385 TString confGem = (!isSrc) ?
"GemRunSpring2018.xml" : isSrc ?
"GemRunSRCSpring2018.xml" :
"";
1386 TString confCsc =
"CSCRunSpring2018.xml";
1389 TString gPathSiliconConfig = gPathConfig +
"/parameters/silicon/XMLConfigs/";
1393 TString gPathGemConfig = gPathConfig +
"/parameters/gem/XMLConfigs/";
1397 TString gPathCscConfig = gPathConfig +
"/parameters/csc/XMLConfigs/";
void SetIsGoodDigit(Bool_t tmp)
void SetStation(Int_t station)
Double_t GetStripSignal()
void SetModule(Int_t module)