10 #include <TParameter.h>
12 #include "AliEMCALGeometry.h"
14 #include "AliInputEventHandler.h"
16 #include "AliOADBContainer.h"
17 #include "AliVCaloCells.h"
18 #include "AliVEvent.h"
26 fHistManager(
nullptr),
29 fRequestTrigger(AliVEvent::kAnyINT),
30 fBadChannelContainer(""),
32 fNumberOfCells(12288),
40 AliAnalysisTaskSE(name),
44 fRequestTrigger(AliVEvent::kAnyINT),
45 fBadChannelContainer(
""),
47 fNumberOfCells(12288),
51 DefineOutput(1, TList::Class());
69 for(
int ism = 0; ism < 20; ++ism){
70 fHistManager->
CreateTH2(Form(
"cellAmpSM%d", ism), Form(
"Integrated cell amplitudes for SM %d; col; row", ism), 48, -0.5, 47.5, 24, -0.5, 23.5);
71 fHistManager->
CreateTH2(Form(
"cellCountSM%d", ism), Form(
"Count rate per cell for SM %d; col; row", ism), 48, -0.5, 47.5, 24, -0.5, 23.5);
74 for(
int ism = 0; ism < 20; ++ism){
75 fHistManager->
CreateTH2(Form(
"cellAmpTimeCorrSM%d", ism), Form(
"Correlation between cell amplitude and time in Supermodule %d", ism), 1000, -5e-7, 5e-7, 1000, 0., 100.);
82 if(!
fGeometry)
fGeometry = AliEMCALGeometry::GetInstanceFromRunNumber(fInputEvent->GetRunNumber());
85 if(InputEvent()->GetRunNumber() !=
fOldRun){
89 fOldRun = InputEvent()->GetRunNumber();
95 if(!TString(InputEvent()->GetFiredTriggerClasses()).Contains(
fTriggerString))
return;
100 AliVCaloCells *emcalcells = fInputEvent->GetEMCALCells();
104 Double_t amplitude, celltime, efrac;
107 Int_t sm, mod, meta, mphi, ieta, iphi;
108 for(
int icell = 0; icell < emcalcells->GetNumberOfCells(); icell++){
109 emcalcells->GetCell(icell, cellNumber, amplitude, celltime, mclabel, efrac);
117 if(celltime > -5e-8 && celltime < 1e-7)
fHistManager->
FillTH2(
"cellTimeMain", cellNumber, celltime);
120 fGeometry->GetCellIndex(cellNumber, sm, mod, mphi, meta);
121 fGeometry->GetCellPhiEtaIndexInSModule(sm, mod, mphi, meta, iphi, ieta);
135 AliOADBContainer contreader(
"EmcalBadChannelsAdditional");
137 TObjArray *rundata =
dynamic_cast<TObjArray *
>(contreader.GetObject(InputEvent()->
GetRunNumber()));
139 for(TIter channeliter = TIter(rundata).Begin(); channeliter != TIter::End(); ++channeliter){
Class creating a linear binning, used in the histogram manager.
std::vector< Int_t > fMaskedCells
Vector of masked cells.
AliEmcalCellMonitorAmplitudeBinning()
void FillTH2(const char *hname, double x, double y, double weight=1., Option_t *opt="")
ULong_t fRequestTrigger
Trigger selection.
void AddStep(Double_t max, Double_t binwidth)
void SetBadCell(Int_t cellId)
AliEmcalCellMonitorTask()
bool IsCellMasked(Int_t cellId) const
TH2 * CreateTH2(const char *name, const char *title, int nbinsx, double xmin, double xmax, int nbinsy, double ymin, double ymax, Option_t *opt="")
THashList * GetListOfHistograms() const
virtual void UserCreateOutputObjects()
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Helper class creating user defined custom binning.
Defining binning in amplitude direction.
Int_t fNumberOfCells
Number of cells.
virtual void UserExec(Option_t *)
TString fTriggerString
Trigger string in addition to trigger selection.
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
virtual ~AliEmcalCellMonitorTask()
Double_t fMinCellAmplitude
Min. cell amplitude requested for cell time and frequency.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Int_t fOldRun
! Old Run number (for run change check)
Container class for histograms for the high- charged particle analysis.
Int_t GetRunNumber(TString)
AliEMCALGeometry * fGeometry
! EMCAL geometry
TString fBadChannelContainer
Bad channel container name.
THistManager * fHistManager
! Histogram handler
void SetMinimum(Double_t min)
Simple monitoring task for cell related quantities.