18 #include <TClonesArray.h>
29 #include "AliAODEvent.h"
30 #include "AliAnalysisManager.h"
31 #include "AliCentrality.h"
32 #include "AliEMCALGeometry.h"
33 #include "AliESDEvent.h"
35 #include "AliEventplane.h"
36 #include "AliInputEventHandler.h"
38 #include "AliMCParticle.h"
39 #include "AliVCluster.h"
40 #include "AliVEventHandler.h"
41 #include "AliVParticle.h"
42 #include "AliAODTrack.h"
43 #include "AliVCaloTrigger.h"
44 #include "AliGenPythiaEventHeader.h"
45 #include "AliAODMCHeader.h"
46 #include "AliMCEvent.h"
47 #include "AliEMCALTriggerPatchInfo.h"
49 #include "AliMultSelection.h"
65 fGeneralHistograms(kFALSE),
67 fNeedEmcalGeom(kTRUE),
69 fCentralityEstimation(kNewCentrality),
73 fCaloTriggerPatchInfoName(),
77 fTriggerSelectionBitMap(0),
86 fMaxMinimumBiasPtHard(-1),
87 fAcceptedTriggerClasses(),
88 fRejectedTriggerClasses(),
89 fMCRejectFilter(kFALSE),
90 fPtHardAndJetPtFactor(0.),
91 fPtHardAndClusterPtFactor(0.),
92 fPtHardAndTrackPtFactor(0.),
93 fSwitchOffLHC15oFaultyBranches(kFALSE),
94 fEventSelectionAfterRun(kFALSE),
95 fLocalInitialized(kFALSE),
100 fTriggerPatchInfo(0),
108 fFiredTriggerBitMap(0),
109 fFiredTriggerClasses(),
117 fHistTrialsVsPtHardNoSel(0),
118 fHistEventsVsPtHardNoSel(0),
119 fHistXsectionVsPtHardNoSel(0),
120 fHistTriggerClassesNoSel(0),
121 fHistZVertexNoSel(0),
122 fHistCentralityNoSel(0),
123 fHistEventPlaneNoSel(0),
124 fHistTrialsVsPtHard(0),
125 fHistEventsVsPtHard(0),
126 fHistXsectionVsPtHard(0),
127 fHistTriggerClasses(0),
132 fHistEventRejection(0),
158 fGeneralHistograms(kFALSE),
160 fNeedEmcalGeom(kTRUE),
162 fCentralityEstimation(kNewCentrality),
166 fCaloTriggerPatchInfoName(),
168 fParticleCollArray(),
170 fTriggerSelectionBitMap(0),
179 fMaxMinimumBiasPtHard(-1),
180 fAcceptedTriggerClasses(),
181 fRejectedTriggerClasses(),
182 fMCRejectFilter(kFALSE),
183 fPtHardAndJetPtFactor(0.),
184 fPtHardAndClusterPtFactor(0.),
185 fPtHardAndTrackPtFactor(0.),
186 fSwitchOffLHC15oFaultyBranches(kFALSE),
187 fEventSelectionAfterRun(kFALSE),
188 fLocalInitialized(kFALSE),
193 fTriggerPatchInfo(0),
201 fFiredTriggerBitMap(0),
202 fFiredTriggerClasses(),
210 fHistTrialsVsPtHardNoSel(0),
211 fHistEventsVsPtHardNoSel(0),
212 fHistXsectionVsPtHardNoSel(0),
213 fHistTriggerClassesNoSel(0),
214 fHistZVertexNoSel(0),
215 fHistCentralityNoSel(0),
216 fHistEventPlaneNoSel(0),
217 fHistTrialsVsPtHard(0),
218 fHistEventsVsPtHard(0),
219 fHistXsectionVsPtHard(0),
220 fHistTriggerClasses(0),
225 fHistEventRejection(0),
279 AliVEventHandler *evhand = mgr->GetInputEventHandler();
281 if (evhand->InheritsFrom(
"AliESDInputHandler")) {
289 AliError(
"Event handler not found!");
293 AliError(
"Analysis manager not found!");
308 fHistEventsVsPtHard =
new TH1F(
"fHistEventsVsPtHard",
"fHistEventsVsPtHard", 1000, 0, 1000);
313 fHistTrialsVsPtHard =
new TH1F(
"fHistTrialsVsPtHard",
"fHistTrialsVsPtHard", 1000, 0, 1000);
318 fHistXsectionVsPtHard =
new TProfile(
"fHistXsectionVsPtHard",
"fHistXsectionVsPtHard", 1000, 0, 1000);
338 fHistTrials =
new TH1F(
"fHistTrials",
"fHistTrials", 50, 0, 50);
339 fHistTrials->GetXaxis()->SetTitle(
"#it{p}_{T,hard} bin");
343 fHistEvents =
new TH1F(
"fHistEvents",
"fHistEvents", 50, 0, 50);
344 fHistEvents->GetXaxis()->SetTitle(
"#it{p}_{T,hard} bin");
348 fHistXsection =
new TProfile(
"fHistXsection",
"fHistXsection", 50, 0, 50);
354 fHistZVertex =
new TH1F(
"fHistZVertex",
"Z vertex position", 60, -30, 30);
359 fHistZVertexNoSel =
new TH1F(
"fHistZVertexNoSel",
"Z vertex position (no event selection)", 60, -30, 30);
365 fHistCentrality =
new TH1F(
"fHistCentrality",
"Event centrality distribution", 100, 0, 100);
370 fHistCentralityNoSel =
new TH1F(
"fHistCentralityNoSel",
"Event centrality distribution (no event selection)", 100, 0, 100);
377 fHistEventPlane =
new TH1F(
"fHistEventPlane",
"Event plane", 120, -TMath::Pi(), TMath::Pi());
382 fHistEventPlaneNoSel =
new TH1F(
"fHistEventPlaneNoSel",
"Event plane (no event selection)", 120, -TMath::Pi(), TMath::Pi());
389 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
413 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
421 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
556 if (file.Contains(
".zip#")) {
557 Ssiz_t pos1 = file.Index(
"root_archive",12,0,TString::kExact);
558 Ssiz_t pos = file.Index(
"#",1,pos1,TString::kExact);
559 Ssiz_t pos2 = file.Index(
".root",5,TString::kExact);
560 file.Replace(pos+1,pos2-pos1,
"");
563 file.ReplaceAll(
gSystem->BaseName(file.Data()),
"");
565 AliDebug(1,Form(
"File name: %s",file.Data()));
570 strPthard.Remove(strPthard.Last(
'/'));
571 strPthard.Remove(strPthard.Last(
'/'));
572 if (strPthard.Contains(
"AOD")) strPthard.Remove(strPthard.Last(
'/'));
573 strPthard.Remove(0,strPthard.Last(
'/')+1);
574 if (strPthard.IsDec()) {
575 pthard = strPthard.Atoi();
578 AliWarning(Form(
"Could not extract file number from path %s", strPthard.Data()));
583 TFile *fxsec = TFile::Open(Form(
"%s%s",file.Data(),
"pyxsec.root"));
587 fxsec = TFile::Open(Form(
"%s%s",file.Data(),
"pyxsec_hists.root"));
593 TKey* key =
static_cast<TKey*
>(fxsec->GetListOfKeys()->At(0));
603 fXsec =
static_cast<TProfile*
>(list->FindObject(
"h1Xsec"))->GetBinContent(1);
604 fTrials =
static_cast<TH1F*
>(list->FindObject(
"h1Trials"))->GetBinContent(1);
608 TTree *xtree =
static_cast<TTree*
>(fxsec->Get(
"Xsection"));
615 xtree->SetBranchAddress(
"xsection",&xsection);
616 xtree->SetBranchAddress(
"ntrials",&ntrials);
643 TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
645 AliError(Form(
"%s - UserNotify: No current tree!",GetName()));
653 TFile *curfile = tree->GetCurrentFile();
655 AliError(Form(
"%s - UserNotify: No current file!",GetName()));
660 if (chain) tree = chain->GetTree();
668 if (!res)
return kTRUE;
690 AliError(Form(
"%s: Could not retrieve event! Returning!", GetName()));
695 fGeom = AliEMCALGeometry::GetInstanceFromRunNumber(InputEvent()->
GetRunNumber());
697 AliFatal(Form(
"%s: Can not get EMCal geometry instance. If you do not need the EMCal geometry, disable it by setting task->SetNeedEmcalGeometry(kFALSE).", GetName()));
703 TTree *aodTree = AliAnalysisManager::GetAnalysisManager()->GetTree();
704 aodTree->SetBranchStatus(
"D0toKpi.fPx", 0);
705 aodTree->SetBranchStatus(
"D0toKpi.fPy", 0);
706 aodTree->SetBranchStatus(
"D0toKpi.fPz", 0);
707 aodTree->SetBranchStatus(
"D0toKpi.fd0", 0);
708 aodTree->SetBranchStatus(
"Charm3Prong.fPx", 0);
709 aodTree->SetBranchStatus(
"Charm3Prong.fPy", 0);
710 aodTree->SetBranchStatus(
"Charm3Prong.fPz", 0);
711 aodTree->SetBranchStatus(
"Charm3Prong.fd0", 0);
712 aodTree->SetBranchStatus(
"Dstar.fPx", 0);
713 aodTree->SetBranchStatus(
"Dstar.fPy", 0);
714 aodTree->SetBranchStatus(
"Dstar.fPz", 0);
715 aodTree->SetBranchStatus(
"Dstar.fd0", 0);
727 AliError(Form(
"%s: Could not retrieve cells %s!", GetName(),
fCaloCellsName.Data()));
735 AliError(Form(
"%s: Could not retrieve calo triggers %s!", GetName(),
fCaloTriggersName.Data()));
764 const AliESDRun *run = esd->GetESDRun();
765 TString beamType = run->GetBeamType();
766 if (beamType ==
"p-p")
768 else if (beamType ==
"A-A")
770 else if (beamType ==
"p-A")
775 Int_t runNumber = InputEvent()->GetRunNumber();
777 if ((runNumber >= 136833 && runNumber <= 139517) ||
778 (runNumber >= 167693 && runNumber <= 170593) ||
779 (runNumber >= 244824 && runNumber <= 246994)) {
781 }
else if ((runNumber >= 188356 && runNumber <= 188366) ||
782 (runNumber >= 195164 && runNumber <= 197388) ||
783 (runNumber >= 265015 && runNumber <= 267166)) {
819 Bool_t acceptedTrgClassFound = kFALSE;
823 if (fired_trg.find(acc_trg) != std::string::npos) {
824 acceptedTrgClassFound = kTRUE;
828 if (acceptedTrgClassFound)
break;
831 if (!acceptedTrgClassFound) {
840 if (fired_trg.find(rej_trg) != std::string::npos) {
848 if (fMinCent < fMaxCent && fMaxCent > 0) {
849 if (fCent < fMinCent || fCent >
fMaxCent) {
913 TClonesArray *arr = 0;
915 if (!sname.IsNull()) {
916 arr =
dynamic_cast<TClonesArray*
>(InputEvent()->FindListObject(sname));
918 AliWarning(Form(
"%s: Could not retrieve array with name %s!", GetName(), name));
928 TString objname(arr->GetClass()->GetName());
930 if (!cls.InheritsFrom(clname)) {
931 AliWarning(Form(
"%s: Objects of type %s in %s are not inherited from %s!",
932 GetName(), cls.GetName(), name, clname));
955 std::stringstream firedClasses(InputEvent()->GetFiredTriggerClasses().
Data());
956 while (firedClasses.good()) {
957 std::string trgClass;
958 firedClasses >> trgClass;
966 fFiredTriggerBitMap =
static_cast<AliVAODHeader*
>(InputEvent()->GetHeader())->GetOfflineTrigger();
969 const AliVVertex *vert = InputEvent()->GetPrimaryVertex();
975 const AliVVertex *vertSPD = InputEvent()->GetPrimaryVertexSPD();
992 AliMultSelection *MultSelection =
static_cast<AliMultSelection*
>(InputEvent()->FindListObject(
"MultSelection"));
994 fCent = MultSelection->GetMultiplicityPercentile(
fCentEst.Data());
997 AliWarning(Form(
"%s: Could not retrieve centrality information! Assuming 99", GetName()));
1002 AliCentrality *aliCent = InputEvent()->GetCentrality();
1007 AliWarning(Form(
"%s: Could not retrieve centrality information! Assuming 99", GetName()));
1020 AliEventplane *aliEP = InputEvent()->GetEventplane();
1022 fEPV0 = aliEP->GetEventplane(
"V0" ,InputEvent());
1023 fEPV0A = aliEP->GetEventplane(
"V0A",InputEvent());
1024 fEPV0C = aliEP->GetEventplane(
"V0C",InputEvent());
1026 AliWarning(Form(
"%s: Could not retrieve event plane information!", GetName()));
1032 fPythiaHeader =
dynamic_cast<AliGenPythiaEventHeader*
>(MCEvent()->GenEventHeader());
1035 AliAODMCHeader* aodMCH =
dynamic_cast<AliAODMCHeader*
>(InputEvent()->FindListObject(AliAODMCHeader::StdBranchName()));
1038 for (
UInt_t i = 0;i<aodMCH->GetNCocktailHeaders();i++) {
1039 fPythiaHeader =
dynamic_cast<AliGenPythiaEventHeader*
>(aodMCH->GetCocktailHeader(i));
1069 if (branchName.size() == 0)
return 0;
1073 if (branchName ==
"tracks" || branchName ==
"Tracks") cont =
new AliTrackContainer(branchName.c_str());
1077 if (contName.size() > 0) cont->SetName(contName.c_str());
1094 if (branchName.size() == 0)
return 0;
1098 if (contName.size() > 0) cont->SetName(contName.c_str());
1112 std::map<std::string, AliParticleContainer*>::const_iterator cont_it =
fParticleCollArray.find(name);
1114 else return nullptr;
1124 std::map<std::string, AliClusterContainer*>::const_iterator cont_it =
fClusterCollArray.find(name);
1126 else return nullptr;
1136 if (!(InputEvent()->FindListObject(obj->GetName()))) {
1137 InputEvent()->AddObject(obj);
1141 AliFatal(Form(
"%s: Container with name %s already present. Aborting", GetName(), obj->GetName()));
1157 AliWarning(Form(
"%s - AliAnalysisTaskEmcalBase::IsTrackInEmcalAcceptance - Geometry is not available!", GetName()));
1164 if (part->Phi() > minPhi && part->Phi() < maxPhi) {
1174 axis->SetBinLabel(1,
"NullObject");
1175 axis->SetBinLabel(2,
"Pt");
1176 axis->SetBinLabel(3,
"Acceptance");
1177 axis->SetBinLabel(4,
"MCLabel");
1178 axis->SetBinLabel(5,
"BitMap");
1179 axis->SetBinLabel(6,
"HF cut");
1180 axis->SetBinLabel(7,
"Bit6");
1181 axis->SetBinLabel(8,
"NotHybridTrack");
1182 axis->SetBinLabel(9,
"MCFlag");
1183 axis->SetBinLabel(10,
"MCGenerator");
1184 axis->SetBinLabel(11,
"ChargeCut");
1185 axis->SetBinLabel(12,
"MinDistanceTPCSectorEdge");
1186 axis->SetBinLabel(13,
"Bit12");
1187 axis->SetBinLabel(14,
"IsEMCal");
1188 axis->SetBinLabel(15,
"Time");
1189 axis->SetBinLabel(16,
"Energy");
1190 axis->SetBinLabel(17,
"ExoticCut");
1191 axis->SetBinLabel(18,
"Bit17");
1192 axis->SetBinLabel(19,
"Area");
1193 axis->SetBinLabel(20,
"AreaEmc");
1194 axis->SetBinLabel(21,
"ZLeadingCh");
1195 axis->SetBinLabel(22,
"ZLeadingEmc");
1196 axis->SetBinLabel(23,
"NEF");
1197 axis->SetBinLabel(24,
"MinLeadPt");
1198 axis->SetBinLabel(25,
"MaxTrackPt");
1199 axis->SetBinLabel(26,
"MaxClusterPt");
1200 axis->SetBinLabel(27,
"Flavour");
1201 axis->SetBinLabel(28,
"TagStatus");
1202 axis->SetBinLabel(29,
"MinNConstituents");
1203 axis->SetBinLabel(30,
"Bit29");
1204 axis->SetBinLabel(31,
"Bit30");
1205 axis->SetBinLabel(32,
"Bit31");
1216 TVector3 vect1(part1->Px(), part1->Py(), part1->Pz());
1217 TVector3 vect2(part2->Px(), part2->Py(), part2->Pz());
1218 Double_t z = (vect1 * vect2) / (vect2 * vect2);
1230 TVector3 vect2(part2->Px(), part2->Py(), part2->Pz());
1231 Double_t z = (vect1 * vect2) / (vect2 * vect2);
1250 Double_t veta = t->GetTrackEtaOnEMCal();
1251 Double_t vphi = t->GetTrackPhiOnEMCal();
1254 v->GetPosition(pos);
1259 phidiff=TVector2::Phi_mpi_pi(vphi-cphi);
1270 if (t->TestBit(BIT(22)) && !t->TestBit(BIT(23)))
1272 else if (!t->TestBit(BIT(22)) && t->TestBit(BIT(23)))
1274 else if (t->TestBit(BIT(22)) && t->TestBit(BIT(23)))
1293 if (aodTrack->TestFilterBit(filterBit1)) {
1296 else if (aodTrack->TestFilterBit(filterBit2)) {
1297 if ((aodTrack->GetStatus()&AliVTrack::kITSrefit)!=0) {
1319 if ((runnumber >= 136833 && runnumber <= 139517) ||
1320 (runnumber >= 167693 && runnumber <= 170593) ||
1321 (runnumber >= 244824 && runnumber <= 246994)) {
1324 else if ((runnumber > 188356 && runnumber <= 188503) ||
1325 (runnumber >= 195164 && runnumber <= 197388) ||
1326 (runnumber >= 265077 && runnumber <= 267166)) {
1347 AliDebug(1,Form(
"Njets: %d, pT Hard %f",nTriggerJets,
fPtHard));
1350 for (
Int_t ijet = 0; ijet< nTriggerJets; ijet++) {
1353 jet.SetPxPyPzE(tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3]);
1355 AliDebug(1,Form(
"jet %d; pycell jet pT %f",ijet, jet.Pt()));
1359 AliInfo(Form(
"Reject jet event with : pT Hard %2.2f, pycell jet pT %2.2f, rejection factor %1.1f\n",
fPtHard, jet.Pt(),
fPtHardAndJetPtFactor));
1369 if ((
Bool_t)mccluscont) {
1370 for (
auto cluster : mccluscont->all()) {
1371 Float_t ecluster = cluster->E();
1385 if ((
Bool_t)mcpartcont) {
1386 for (
auto mctrack : mcpartcont->
all()) {
1387 Float_t trackpt = mctrack->Pt();
Bool_t fSwitchOffLHC15oFaultyBranches
Switch off faulty tree branches in LHC15o AOD trees.
void SetRejectionReasonLabels(TAxis *axis)
AliClusterContainer * AddClusterContainer(std::string branchName, std::string contName="")
Float_t fPtHardAndJetPtFactor
Factor between ptHard and jet pT to reject/accept event.
Double_t fVertexSPD[3]
!event Svertex
void UserCreateOutputObjects()
TString fCaloTriggersName
name of calo triggers collection
AliEMCALGeometry * fGeom
!emcal geometry
EBeamType_t fBeamType
!event beam type
TList * fOutput
!output list
TClonesArray * GetArrayFromEvent(const char *name, const char *clname=0)
Double_t fPtHard
!event pt hard
Float_t fXsection
!x-section from pythia header
Double_t fEPV0A
!event plane V0A
TH1 * fHistZVertexNoSel
!z vertex position (no event selection)
Double_t fEPV0
!event plane V0
TH1 * fHistEventCount
!incoming and selected events
TProfile * fHistXsectionVsPtHardNoSel
!x section from pythia header (no event selection)
Int_t fNTrials
!event trials
Container with name, TClonesArray and cuts for particles.
Bool_t fMCRejectFilter
enable the filtering of events by tail rejection
TString fCaloTriggerPatchInfoName
trigger patch info array name
Double_t fMinVz
min vertex for event selection
TList * list
TDirectory file where lists per trigger are stored in train ouput.
New centrality estimation (AliMultSelection, see https://twiki.cern.ch/twiki/bin/viewauth/ALICE/AliMu...
void UserExec(Option_t *option)
TString fCentEst
name of the centrality estimator
TH1 * fHistTrialsVsPtHardNoSel
!total number of trials per pt hard bin after selection (no event selection)
UInt_t fTriggerSelectionBitMap
trigger selection bit map
TH1 * fHistCentrality
!event centrality distribution
const AliMCParticleIterableContainer all() const
std::vector< double > fCentBins
how many centrality bins
Bool_t fEventSelectionAfterRun
If kTRUE, the event selection is performed after Run() but before FillHistograms() ...
static Byte_t GetTrackType(const AliVTrack *t)
virtual ~AliAnalysisTaskEmcalLight()
TH1 * fHistTriggerClasses
!number of events in each trigger class
TString fCaloCellsName
name of calo cell collection
TH1 * fHistEvents
!total number of events per pt hard bin
Bool_t IsTrackInEmcalAcceptance(AliVParticle *part, Double_t edges=0.9) const
std::set< std::string > fRejectedTriggerClasses
list of accepted trigger classes
virtual Bool_t FillHistograms()
Double_t fMaxMinimumBiasPtHard
maximum pt hard for the minimum bias pt hard bin (MC)
Container for particles within the EMCAL framework.
static void GetEtaPhiDiff(const AliVTrack *t, const AliVCluster *v, Double_t &phidiff, Double_t &etadiff)
void AddObjectToEvent(TObject *obj, Bool_t attempt=kFALSE)
static Double_t fgkEMCalDCalPhiDivide
phi value used to distinguish between DCal and EMCal
EBeamType_t fForceBeamType
forced beam type
No centrality estimation.
virtual Bool_t IsEventSelected()
AliVCaloCells * fCaloCells
!cells
std::vector< std::string > fFiredTriggerClasses
!trigger classes fired by the current event
Bool_t fCreateHisto
whether or not create histograms
TH1 * fHistTrialsVsPtHard
!total number of trials per pt hard bin after selection
TH1 * fHistEventRejection
!book keep reasons for rejecting event
TH1 * fHistTrials
!trials from pyxsec.root
Double_t fMinPtHard
select minimum pt hard (MC)
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
EBeamType_t GetBeamType()
TH1 * fHistEventsVsPtHard
!total number of events per pt hard bin after selection
TH1 * fHistTriggerClassesNoSel
!number of events in each trigger class (no event selection)
Float_t fPtHardAndClusterPtFactor
Factor between ptHard and cluster pT to reject/accept event.
Double_t fMaxVzDiff
upper limit for distance between primary and SPD vertex
Double_t fVertex[3]
!event vertex
ECentralityEstimation_t fCentralityEstimation
Centrality estimation.
TH1 * fHistCentralityNoSel
!event centrality distribution (no event selection)
Int_t fPtHardBin
!event pt hard
AliClusterContainer * GetClusterContainer(std::string name) const
void AdoptClusterContainer(AliClusterContainer *cont)
Bool_t fIsPythia
if it is a PYTHIA production
TProfile * fHistXsection
!x section from pyxsec.root
Int_t fCentBin
!event centrality bin
Double_t fMaxCent
max centrality for event selection
ULong_t fFiredTriggerBitMap
!bit map of fired triggers
Double_t fMinNVertCont
minumum number of vertex contributors
virtual Bool_t RetrieveEventObjects()
Int_t fNVertSPDCont
!event SPD vertex number of contributors
std::set< std::string > fAcceptedTriggerClasses
list of accepted trigger classes
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)
TH1 * fHistEventPlaneNoSel
!event plane distribution (no event selection)
Bool_t PythiaInfoFromFile(const char *currFile, Float_t &fXsec, Float_t &fTrials, Int_t &pthard)
Bool_t fLocalInitialized
!whether or not the task has been already initialized
static EBeamType_t BeamTypeFromRunNumber(Int_t runnumber)
AliParticleContainer * AddParticleContainer(std::string branchName, std::string contName="")
std::map< std::string, AliParticleContainer * > fParticleCollArray
particle/track collection array
TFile * file
TList with histograms for a given trigger.
TH1 * fHistEventsVsPtHardNoSel
!total number of events per pt hard bin after selection (no event selection)
Int_t fNVertCont
!event vertex number of contributors
Bool_t fGeneralHistograms
whether or not it should fill some general histograms
Int_t GetRunNumber(TString)
AliGenPythiaEventHeader * fPythiaHeader
!event Pythia header
Float_t fPtHardAndTrackPtFactor
Factor between ptHard and track pT to reject/accept event.
AliParticleContainer * GetParticleContainer(std::string name) const
AliAnalysisTaskEmcalLight()
TH1 * fHistEventPlane
!event plane distribution
std::map< std::string, AliClusterContainer * > fClusterCollArray
cluster collection array
EBeamType_t
Switch for the beam type.
AliVCaloTrigger * fCaloTriggers
!calo triggers
TProfile * fHistXsectionVsPtHard
!x section from pythia header
Container structure for EMCAL clusters.
Container for MC-true particles within the EMCAL framework.
TH1 * fHistZVertex
!z vertex position
void AdoptParticleContainer(AliParticleContainer *cont)
virtual Bool_t FillGeneralHistograms(Bool_t eventSelected)
Double_t fMaxVz
max vertex for event selection
Double_t fCent
!event centrality
Double_t fEPV0C
!event plane V0C
TClonesArray * fTriggerPatchInfo
!trigger patch info array
Double_t fMaxPtHard
select maximum pt hard (MC)
Old centrality estimation (AliCentrality, works only on Run-1 PbPb and pPb)
TList * OpenFile(const char *fname)
Bool_t fNeedEmcalGeom
whether or not the task needs the emcal geometry
static Double_t GetParallelFraction(AliVParticle *part1, AliVParticle *part2)
EDataType_t fDataType
!data type (ESD or AOD)