10 #include "AliAnalysisManager.h" 13 #include "AliEMCALGeometry.h" 14 #include "AliMultSelection.h" 15 #include "AliVCaloCells.h" 23 fUseCentrality(false),
33 fUseCentrality(false),
50 cellbinning(20001, -0.5, 20000.5),
51 clusterbinning(2001, -0.5, 2000.5);
52 const TBinning *histbinning[5] = {&multbinning, &cellbinning, &cellbinning, &clusterbinning, &clusterbinning};
74 AliVCaloCells *emccells = InputEvent()->GetEMCALCells();
75 int cellcounterRaw(0), cellcounterCorr(0);
76 for(
int icell = 0; icell < emccells->GetNumberOfCells(); icell++) {
77 Short_t absID = emccells->GetCellNumber(icell);
78 Double_t amplitude = emccells->GetAmplitude(icell);
79 if(amplitude > DBL_EPSILON) {
89 int clustercounterRaw(0), clustercounterCorr(0);
93 clustercounterCorr = std::count_if(clusteriter.
begin(), clusteriter.
end(), [](
const AliVCluster *
c) ->
bool {
return !
c->GetIsExotic(); } );
95 Double_t datapoint[5] = {centralityPercentile,
static_cast<double>(cellcounterRaw), static_cast<double>(cellcounterCorr),
static_cast<double>(clustercounterRaw), static_cast<double>(clustercounterCorr)};
105 std::cout <<
"AddOccupancyTask: Analysis Manager not available - exiting ..." << std::endl;
110 mgr->AddTask(occupancyTask);
112 TString outname = mgr->GetCommonFileName();
113 outname += TString::Format(
":EMCALOccupancy");
115 mgr->ConnectInput(occupancyTask, 0, mgr->GetCommonInputContainer());
116 mgr->ConnectOutput(occupancyTask, 1, mgr->CreateContainer(
"EMCALOccupancyHists", TList::Class(), AliAnalysisManager::kOutputContainer, outname));
118 return occupancyTask;
void UserCreateOutputObjects()
THistManager * fHistos
Histogram container;.
AliEMCALGeometry * fGeom
!emcal geometry
TList * fOutput
!output list
Class creating a linear binning, used in the histogram manager.
AliAnalysisTaskEmcalOccupancy()
Interface for binnings used by the histogram handler.
const AliClusterIterableContainer all() const
EBeamType_t fForceBeamType
forced beam type
TString fNameClusters
Name of the cluster container.
void FillTHnSparse(const char *name, const double *x, double weight=1., Option_t *opt="")
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
static AliAnalysisTaskEmcalOccupancy * AddOccupancyTask(const char *name)
AliClusterContainer * GetClusterContainer(std::string name) const
void SetNeedEmcalGeom(Bool_t n)
Int_t GetNClusters() const
Bool_t fLocalInitialized
!whether or not the task has been already initialized
virtual void UserCreateOutputObjects()
Container class for histograms.
THnSparse * CreateTHnSparse(const char *name, const char *title, int ndim, const int *nbins, const double *min, const double *max, Option_t *opt="")
Create a new THnSparse within the container.
Task monitoring the occupancy on cluster and cell level.
Container structure for EMCAL clusters.
void SetMakeGeneralHistograms(Bool_t g)
Double_t fCent
!event centrality
UChar_t * fCellCounter
! Counting how often a cell is fired per event
virtual ~AliAnalysisTaskEmcalOccupancy()