19 #include <THashList.h>
24 #include <TObjString.h>
25 #include <TObjArray.h>
27 #include "AliEMCALTriggerPatchInfo.h"
28 #include "AliEMCALTriggerFastOR.h"
30 #include "AliEMCALGeometry.h"
31 #include "AliVCaloCells.h"
33 #include "AliEMCALTriggerConstants.h"
37 using namespace EMCALTrigger;
49 fOfflineBadChannels(),
63 fTimeStampBinWidth(0),
78 fEventTimeStampBin(0),
82 for (Int_t i = 0; i < 3; i++) {
85 for (Int_t itype = 0; itype < 6; itype++) {
104 fOfflineBadChannels(),
106 fFastORPedestal(5000),
118 fTimeStampBinWidth(0),
133 fEventTimeStampBin(0),
137 for (Int_t i = 0; i < 3; i++) {
140 for (Int_t itype = 0; itype < 6; itype++) {
159 fOfflineBadChannels(triggerQA.fOfflineBadChannels),
161 fFastORPedestal(triggerQA.fFastORPedestal),
162 fFastorL0Th(triggerQA.fFastorL0Th),
163 fFastorL1Th(triggerQA.fFastorL1Th),
164 fADCperBin(triggerQA.fADCperBin),
166 fL0MinTime(triggerQA.fL0MinTime),
167 fL0MaxTime(triggerQA.fL0MaxTime),
168 fMinCellAmp(triggerQA.fMinCellAmp),
169 fMinL0FastORAmp(triggerQA.fMinL0FastORAmp),
170 fMinL1FastORAmp(triggerQA.fMinL1FastORAmp),
171 fHistManager(triggerQA.GetName()),
172 fDCalPlots(triggerQA.fDCalPlots),
173 fTimeStampBinWidth(triggerQA.fTimeStampBinWidth),
188 fEventTimeStampBin(0),
192 for (Int_t i = 0; i < 3; i++) {
195 for (Int_t itype = 0; itype < 6; itype++) {
214 while (stream.good()) {
225 std::ifstream
file(fname);
236 while (stream.good()) {
247 std::ifstream
file(fname);
258 AliWarning(Form(
"Abs. ID %d out of range (0,5000)", absId));
272 while (stream.good()) {
284 std::ifstream
file(fname);
309 fGeom = AliEMCALGeometry::GetInstance();
311 AliError(
"Could not get geometry!");
331 hname = Form(
"EMCTRQA_histFastORL0");
332 htitle = Form(
"EMCTRQA_histFastORL0;FastOR abs. ID;entries above 0");
335 hname = Form(
"EMCTRQA_histLargeAmpFastORL0");
336 htitle = Form(
"EMCTRQA_histLargeAmpFastORL0 (>%d);FastOR abs. ID;entries above %d",
fFastorL0Th,
fFastorL0Th);
339 hname = Form(
"EMCTRQA_histFastORL0Amp");
340 htitle = Form(
"EMCTRQA_histFastORL0Amp;FastOR abs. ID;ADC counts");
343 hname = Form(
"EMCTRQA_histFastORL0Time");
344 htitle = Form(
"EMCTRQA_histFastORL0Time;FastOR abs. ID;time");
347 hname = Form(
"EMCTRQA_histFastORL0AmpVsTime");
348 htitle = Form(
"EMCTRQA_histFastORL0AmpVsTime;time;amplitude");
349 fHistManager.CreateTH2(hname, htitle, 21, -1, 20, 1024, 0, 4096);
351 hname = Form(
"EMCTRQA_histFastORL0TimeOk");
352 htitle = Form(
"EMCTRQA_histFastORL0TimeOk;FastOR abs. ID;entries (%d < time < %d)",
fL0MinTime,
fL0MaxTime);
355 hname = Form(
"EMCTRQA_histFastORL0AmpTimeOk");
356 htitle = Form(
"EMCTRQA_histFastORL0AmpTimeOk;FastOR abs. ID;ADC counts (%d < time < %d)",
fL0MinTime,
fL0MaxTime);
359 hname = Form(
"EMCTRQA_histFastORL1");
360 htitle = Form(
"EMCTRQA_histFastORL1;FastOR abs. ID;entries above 0");
363 hname = Form(
"EMCTRQA_histLargeAmpFastORL1");
364 htitle = Form(
"EMCTRQA_histLargeAmpFastORL1 (>%d);FastOR abs. ID;entries above %d",
fFastorL1Th,
fFastorL1Th);
367 hname = Form(
"EMCTRQA_histFastORL1Amp");
368 htitle = Form(
"EMCTRQA_histFastORL1Amp;FastOR abs. ID;L1 time sum");
371 hname = Form(
"EMCTRQA_histFastORL1AmpVsL0Amp");
372 htitle = Form(
"EMCTRQA_histFastORL1AmpVsL0Amp;L0 amplitude;L1 time sum;entries");
373 fHistManager.CreateTH2(hname, htitle, 256, 0, 1024, 256, 0, 1024);
375 hname = Form(
"EMCTRQA_histCellAmp");
376 htitle = Form(
"EMCTRQA_histCellAmp;cell abs. ID;energy (GeV)");
379 hname = Form(
"EMCTRQA_histCell");
380 htitle = Form(
"EMCTRQA_histCell;cell abs. ID;entries above 0 GeV");
383 hname = Form(
"EMCTRQA_histLargeAmpCell");
384 htitle = Form(
"EMCTRQA_histLargeAmpCell (>%.1f);cell abs. ID;entries above %.1f GeV",
fFastorL1Th * EMCALTrigger::kEMCL1ADCtoGeV,
fFastorL1Th * EMCALTrigger::kEMCL1ADCtoGeV);
387 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0Amp");
388 htitle = Form(
"EMCTRQA_histCellAmpVsFastORL0Amp;FastOR L0 amplitude;2x2 cell sum energy (GeV)");
389 fHistManager.CreateTH2(hname, htitle, 1024, 0, 4096, 400, 0, 200);
391 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggered");
392 htitle = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggered;FastOR L0 amplitude;2x2 cell sum energy (GeV)");
393 fHistManager.CreateTH2(hname, htitle, 1024, 0, 4096, 400, 0, 200);
395 hname = Form(
"EMCTRQA_histCellAmpVsFastORL1Amp");
396 htitle = Form(
"EMCTRQA_histCellAmpVsFastORL1Amp;FastOR L1 amplitude;2x2 cell sum energy (GeV)");
397 fHistManager.CreateTH2(hname, htitle, 1024, 0, 4096, 400, 0, 200);
399 for (Int_t nTRU = 0; nTRU <
fNTotTRU; nTRU++) {
400 if (nTRU == 34 || nTRU == 35 ||
401 nTRU == 40 || nTRU == 41 ||
402 nTRU == 46 || nTRU == 47)
continue;
403 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTRU%d", nTRU);
404 htitle = Form(
"EMCTRQA_histCellAmpVsFastORL0Amp%d;FastOR L0 amplitude;2x2 cell sum energy (GeV)", nTRU);
405 fHistManager.CreateTH2(hname, htitle, 1024, 0, 4096, 400, 0, 200);
407 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggeredTRU%d", nTRU);
408 htitle = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggeredTRU%d;FastOR L0 amplitude;2x2 cell sum energy (GeV)", nTRU);
409 fHistManager.CreateTH2(hname, htitle, 1024, 0, 4096, 400, 0, 200);
412 hname = Form(
"EMCTRQA_histFastORNoOffline");
413 htitle = Form(
"EMCTRQA_histFastORNoOffline;FastOR abs. ID;entries with no offline energy");
416 const char* det[2] = {
"EMCal",
"DCal" };
418 for (Int_t itrig = 0; itrig < 6; itrig++) {
421 for (Int_t idet = 0; idet < ndet; idet++) {
422 hname = Form(
"EMCTRQA_hist%s%sMaxOfflineVsRecalc", det[idet], kEMCalTriggerNames[itrig].
Data());
423 htitle = Form(
"EMCTRQA_hist%s%sMaxOfflineVsRecalc;Recalc;Offline;entries", det[idet], kEMCalTriggerNames[itrig].
Data());
426 hname = Form(
"EMCTRQA_hist%s%sOfflineVsRecalc", det[idet], kEMCalTriggerNames[itrig].
Data());
427 htitle = Form(
"EMCTRQA_hist%s%sOfflineVsRecalc;Recalc;Offline;entries", det[idet], kEMCalTriggerNames[itrig].
Data());
431 for (Int_t itype = 0; itype < 3; itype++) {
433 for (Int_t idet = 0; idet < ndet; idet++) {
434 hname = Form(
"EMCTRQA_hist%sPatchAmp%s%s", det[idet], kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
435 htitle = Form(
"EMCTRQA_hist%sPatchAmp%s%s;amplitude;entries", det[idet], kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
438 hname = Form(
"EMCTRQA_hist%sMaxPatchAmp%s%s", det[idet], kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
439 htitle = Form(
"EMCTRQA_hist%sMaxPatchAmp%s%s;amplitude;entries", det[idet], kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
442 for (Int_t itrig2 = itrig+1; itrig2 < 6; itrig2++) {
444 hname = Form(
"EMCTRQA_hist%s%sMaxVs%sMax%s", det[idet], kEMCalTriggerNames[itrig].
Data(), kEMCalTriggerNames[itrig2].
Data(),
fgkPatchTypes[itype].
Data());
445 htitle = Form(
"EMCTRQA_hist%s%sMaxVs%sMax%s;%s max;%s max;entries", det[idet], kEMCalTriggerNames[itrig].
Data(), kEMCalTriggerNames[itrig2].
Data(),
fgkPatchTypes[itype].
Data(), kEMCalTriggerNames[itrig2].
Data(), kEMCalTriggerNames[itrig].
Data());
450 hname = Form(
"EMCTRQA_histMaxEdgePos%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
451 htitle = Form(
"EMCTRQA_histMaxEdgePos%s%s;col;row;entries", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
452 fHistManager.CreateTH2(hname, htitle, 48, 0, 48, 105, 0, 105);
455 hname = Form(
"EMCTRQA_histEMCalMaxVsDCalMax%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
456 htitle = Form(
"EMCTRQA_histEMCalMaxVsDCalMax%s%s;EMCal max;DCal max;entries", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
462 for (Int_t idet = 0; idet < ndet; idet++) {
463 hname = Form(
"EMCTRQA_hist%sOfflineSumVsL0Sum", det[idet]);
464 htitle = hname +
";Sum of L0 amplitudes;Sum of cell energies (GeV)";
465 fHistManager.CreateTH2(hname, htitle, 250, 0, 5000, 400, 0, 200);
467 hname = Form(
"EMCTRQA_hist%sOfflineSumVsL1Sum", det[idet]);
468 htitle = hname +
";Sum of L1 amplitudes;Sum of cell energies (GeV)";
469 fHistManager.CreateTH2(hname, htitle, 250, 0, 5000, 400, 0, 200);
471 hname = Form(
"EMCTRQA_hist%sL1SumVsL0Sum", det[idet]);
472 htitle = hname +
";Sum of L0 amplitudes;Sum of L1 amplitudes";
473 fHistManager.CreateTH2(hname, htitle, 250, 0, 5000, 250, 0, 5000);
475 hname = Form(
"EMCTRQA_hist%sNCellVsNL0", det[idet]);
476 htitle = hname +
";Number of L0 FastORs;Number of cells";
477 fHistManager.CreateTH2(hname, htitle, 250, 0, 500, 250, 0, 2000);
479 hname = Form(
"EMCTRQA_hist%sNCellVsNL1", det[idet]);
480 htitle = hname +
";Number of L1 FastORs;Number of cells";
481 fHistManager.CreateTH2(hname, htitle, 250, 0, 500, 250, 0, 2000);
483 hname = Form(
"EMCTRQA_hist%sNL1VsNL0", det[idet]);
484 htitle = hname +
";Number of L0 FastORs;Number of L1 FastORs";
485 fHistManager.CreateTH2(hname, htitle, 250, 0, 500, 250, 0, 500);
497 Int_t triggerBits[6] = { patch->GetTriggerBitConfig()->GetLevel0Bit(),
498 patch->GetTriggerBitConfig()->GetGammaLowBit(),
499 patch->GetTriggerBitConfig()->GetGammaHighBit(),
500 patch->GetTriggerBitConfig()->GetJetLowBit(),
501 patch->GetTriggerBitConfig()->GetJetHighBit(),
502 patch->GetTriggerBitConfig()->GetBkgBit()
505 Int_t offsets[3] = { 0, AliEMCALTriggerPatchInfo::kRecalcOffset, AliEMCALTriggerPatchInfo::kOfflineOffset };
506 Int_t amplitudes[3] = { patch->GetADCAmp(), patch->GetADCAmp(), patch->GetADCOfflineAmp() };
508 for (Int_t itrig = 0; itrig < 6; itrig++) {
511 for (Int_t itype = 0; itype < 3; itype++) {
513 if (!patch->TestTriggerBit(triggerBits[itrig]+offsets[itype]))
continue;
517 if (patch->IsEMCal()) {
521 else if (patch->IsDCalPHOS()) {
527 AliWarning(Form(
"Patch is not EMCal nor DCal/PHOS (pos: %d, %d)", patch->GetRowStart(), patch->GetColStart()));
530 hname = Form(
"EMCTRQA_hist%s%sOfflineVsRecalc", det.Data(), kEMCalTriggerNames[itrig].Data());
531 fHistManager.FillTH2(hname, amplitudes[1], amplitudes[2]);
533 hname = Form(
"EMCTRQA_hist%sPatchAmp%s%s", det.Data(), kEMCalTriggerNames[itrig].Data(),
fgkPatchTypes[itype].Data());
538 Printf(
"Type = %s; global pos = (%d, %d); Amp (online) = %d; Amp (offline) = %d; Patch energy = %.3f\n"
539 "Position (CM): Eta=%.3f, Phi=%.3f\n"
540 "Position (Geo): Eta=%.3f, Phi=%.3f\n",
541 kEMCalTriggerNames[itrig].
Data(), patch->GetRowStart(), patch->GetColStart(), patch->GetADCAmp(), patch->GetADCOfflineAmp(), patch->GetPatchE(),
542 patch->GetEtaCM(), patch->GetPhiCM(),
543 patch->GetEtaGeo(), patch->GetPhiGeo());
557 Double_t pos[3] = {0};
559 if (
fGeom->IsInDCAL(pos[0], pos[1], pos[2])) {
564 else if (
fGeom->IsInEMCAL(pos[0], pos[1], pos[2])) {
569 AliWarning(Form(
"Cell with absolute ID %hd was not identified as neither DCal or EMCal!!", cell.
fAbsId));
577 hname = Form(
"EMCTRQA_histCell");
580 hname = Form(
"EMCTRQA_histCellAmp");
584 hname = Form(
"EMCTRQA_histLargeAmpCell");
599 Int_t L0amp = fastor->GetL0Amp() -
fFastORPedestal[fastor->GetAbsId()];
600 Bool_t isDCal = kFALSE;
602 Double_t offlineAmp = 0;
608 fGeom->GetCellIndexFromFastORIndex(fastor->GetAbsId(), idx);
609 fGeom->GetTRUFromAbsFastORIndex(fastor->GetAbsId(), nTRU, nADC);
610 Double_t pos[3] = {0};
612 fGeom->GetGlobal(idx[0], pos);
613 isDCal =
fGeom->IsInDCAL(pos[0], pos[1], pos[2]);
618 for (Int_t i = 0; i < 4; i++) {
619 offlineAmp += cells->GetCellAmplitude(idx[i]);
632 hname = Form(
"EMCTRQA_histFastORL0");
635 hname = Form(
"EMCTRQA_histFastORL0Amp");
638 hname = Form(
"EMCTRQA_histFastORL0Time");
639 fHistManager.FillTH2(hname, fastor->GetAbsId(), fastor->GetL0Time());
641 hname = Form(
"EMCTRQA_histFastORL0AmpVsTime");
642 fHistManager.FillTH2(hname, fastor->GetL0Time(), L0amp);
645 hname = Form(
"EMCTRQA_histFastORL0TimeOk");
648 hname = Form(
"EMCTRQA_histFastORL0AmpTimeOk");
651 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggered");
654 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTriggeredTRU%d",nTRU);
658 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0Amp");
661 hname = Form(
"EMCTRQA_histCellAmpVsFastORL0AmpTRU%d",nTRU);
664 if (offlineAmp == 0) {
665 hname = Form(
"EMCTRQA_histFastORNoOffline");
685 hname = Form(
"EMCTRQA_histLargeAmpFastORL0");
690 hname = Form(
"EMCTRQA_histFastORL1");
693 hname = Form(
"EMCTRQA_histFastORL1Amp");
694 fHistManager.FillTH2(hname, fastor->GetAbsId(), fastor->GetL1Amp());
705 hname = Form(
"EMCTRQA_histCellAmpVsFastORL1Amp");
706 fHistManager.FillTH2(hname, fastor->GetL1Amp(), offlineAmp);
710 hname = Form(
"EMCTRQA_histLargeAmpFastORL1");
715 hname = Form(
"EMCTRQA_histFastORL1AmpVsL0Amp");
726 AliDebug(2, Form(
"Entering AliEmcalTriggerQAAP::EventCompleted"));
730 for (Int_t itrig = 0; itrig < 6; itrig++) {
732 AliDebug(2, Form(
"Trigger type: %s", kEMCalTriggerNames[itrig].
Data()));
734 hname = Form(
"EMCTRQA_histEMCal%sMaxOfflineVsRecalc", kEMCalTriggerNames[itrig].
Data());
738 hname = Form(
"EMCTRQA_histDCal%sMaxOfflineVsRecalc", kEMCalTriggerNames[itrig].
Data());
742 for (Int_t itype = 0; itype < 3; itype++) {
747 hname = Form(
"EMCTRQA_histMaxEdgePos%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
751 hname = Form(
"EMCTRQA_histEMCalMaxPatchAmp%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
756 hname = Form(
"EMCTRQA_histMaxEdgePos%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
760 hname = Form(
"EMCTRQA_histDCalMaxPatchAmp%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
763 hname = Form(
"EMCTRQA_histEMCalMaxVsDCalMax%s%s", kEMCalTriggerNames[itrig].
Data(),
fgkPatchTypes[itype].
Data());
767 for (Int_t itrig2 = itrig+1; itrig2 < 6; itrig2++) {
770 hname = Form(
"EMCTRQA_histEMCal%sMaxVs%sMax%s", kEMCalTriggerNames[itrig].
Data(), kEMCalTriggerNames[itrig2].
Data(),
fgkPatchTypes[itype].
Data());
774 hname = Form(
"EMCTRQA_histDCal%sMaxVs%sMax%s", kEMCalTriggerNames[itrig].
Data(), kEMCalTriggerNames[itrig2].
Data(),
fgkPatchTypes[itype].
Data());
824 if (!patch)
return 0;
825 if (itype == 0 || itype == 1) {
826 return patch->GetADCAmp();
828 else if (itype == 2) {
829 return patch->GetADCOfflineAmp();
856 htitle = TString::Format(
"EMCTRQA_histEvents;;events");
857 TH1* hevents =
fHistManager.CreateTH1(hname, htitle, 1, 0, 1);
861 htitle = TString::Format(
"EMCTRQA_histFastORL0;FastOR abs. ID;entries above 0");
865 htitle = TString::Format(
"EMCTRQA_histLargeAmpFastORL0 (>%d);FastOR abs. ID;entries above %d",
fFastorL0Th,
fFastorL0Th);
Int_t fNL0EMCal
! EMCal number of L0 FastORs (will be reset each event)
static Int_t GetAmplitude(AliEMCALTriggerPatchInfo *patch, Int_t itype)
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
Double_t fMinCellAmp
Minimum offline amplitude of the cells.
void EnablePatchType(PatchTypes_t type, Bool_t e=kTRUE)
Int_t fNCellDCal
! DCal number of offline cells (will be reset each event)
UInt_t fEventTimeStamp
! Time stamp of the current event
void EventTimeStamp(UInt_t timeStamp)
TArrayF fFastORPedestal
FastOR pedestal.
Int_t fSumL1EMCal
! EMCal sum of all online energy deposition (will be reset each event)
AliEMCALGeometry * fGeom
! EMCal geometry
EMCALTrigger::EMCalTriggerType_t EMCalTriggerType_t
void ExecOnce()
Actions to be executed only once for the first event.
Int_t fNCellEMCal
! EMCal number of offline cells (will be reset each event)
void EnableTriggerType(EMCalTriggerType_t type, Bool_t e=kTRUE)
Int_t fFastorL1Th
FastOR L1 threshold.
void SetFastORPedestal(Short_t absId, Float_t ped)
Bool_t fDCalPlots
Whether to add DCal QA plots.
void ReadFastORBadChannelFromStream(std::istream &stream)
void ReadFastORPedestalFromFile(const char *fname)
Int_t fMinL1FastORAmp
Minimum L1 amplitude of the FastORs.
static const Int_t fgkMaxPatchAmp[6]
Maximum patch amplitude for the histograms.
AliEMCALTriggerPatchInfo * fMaxPatchDCal[6][3]
! DCal max patch (will be reset each event)
void ReadFastORPedestalFromStream(std::istream &stream)
std::set< Short_t > fOfflineBadChannels
Abs ID of offline bad channels.
void ReadOfflineBadChannelFromFile(const char *fname)
void ProcessFastor(AliEMCALTriggerFastOR *fastor, AliVCaloCells *cells)
Double_t fSumOfflineEMCal
! EMCal sum of all offline energy deposition (will be reset each event)
Int_t fNTotTRU
! Total number of TRUs
Int_t fMaxFORabsId
! Maximum FastOR abs id
Int_t fADCperBin
ADC counts per bin.
virtual ~AliEmcalTriggerQAPP()
Destructor.
AliEmcalTriggerQAPP()
Dummy constructor for ROOT I/O.
void ReadOfflineBadChannelFromStream(std::istream &stream)
Int_t fNL0DCal
! DCal number of L0 FastORs (will be reset each event)
void AddOfflineBadChannel(Short_t absId)
UInt_t fTimeStampBinWidth
Time stamp bin width.
Int_t fL0MaxTime
Maximum L0 time.
Bool_t fEnabledTriggerTypes[6]
Trigger types to be plotted.
void ProcessPatch(AliEMCALTriggerPatchInfo *patch)
Int_t fSumL0DCal
! DCal sum of all online energy deposition (will be reset each event)
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
Int_t fFastorL0Th
FastOR L0 threshold.
static const TString fgkPatchTypes[3]
Patch type names.
Double_t fSumOfflineDCal
! DCal sum of all offline energy deposition (will be reset each event)
Int_t fSumL0EMCal
! EMCal sum of all online energy deposition (will be reset each event)
THistManager fHistManager
Histogram manager.
Int_t fNL1DCal
! DCal number of L1 FastORs (will be reset each event)
void Init()
Initialize the class, i.e. allocate histograms.
Int_t fL0MinTime
Minimum L0 time.
void ReadFastORBadChannelFromFile(const char *fname)
Bool_t fEnabledPatchTypes[3]
Patch types to be plotted.
Int_t fDebugLevel
Debug level.
Class to generate EMCal trigger QA plots in pp collisions.
Int_t fSumL1DCal
! DCal sum of all online energy deposition (will be reset each event)
UInt_t fEventTimeStampBin
! Time stamp bin
Int_t fMinL0FastORAmp
Minimum L0 amplitude of the FastORs.
std::set< Short_t > fBadChannels
Container of bad channels.
AliEMCALTriggerPatchInfo * fMaxPatchEMCal[6][3]
! EMCal max patch (will be reset each event)
Int_t fNL1EMCal
! EMCal number of L1 FastORs (will be reset each event)
void AddFastORBadChannel(Short_t absId)
void ProcessCell(const AliEmcalCellInfo &cell)