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 fUseNewCentralityEstimation(kFALSE),
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 fLocalInitialized(kFALSE),
107 fFiredTriggerBitMap(0),
108 fFiredTriggerClasses(),
116 fHistTrialsVsPtHardNoSel(0),
117 fHistEventsVsPtHardNoSel(0),
118 fHistXsectionVsPtHardNoSel(0),
119 fHistTriggerClassesNoSel(0),
120 fHistZVertexNoSel(0),
121 fHistCentralityNoSel(0),
122 fHistEventPlaneNoSel(0),
123 fHistTrialsVsPtHard(0),
124 fHistEventsVsPtHard(0),
125 fHistXsectionVsPtHard(0),
126 fHistTriggerClasses(0),
131 fHistEventRejection(0),
157 fGeneralHistograms(kFALSE),
159 fNeedEmcalGeom(kTRUE),
161 fUseNewCentralityEstimation(kFALSE),
165 fCaloTriggerPatchInfoName(),
167 fParticleCollArray(),
169 fTriggerSelectionBitMap(0),
178 fMaxMinimumBiasPtHard(-1),
179 fAcceptedTriggerClasses(),
180 fRejectedTriggerClasses(),
181 fMCRejectFilter(kFALSE),
182 fPtHardAndJetPtFactor(0.),
183 fPtHardAndClusterPtFactor(0.),
184 fPtHardAndTrackPtFactor(0.),
185 fSwitchOffLHC15oFaultyBranches(kFALSE),
186 fLocalInitialized(kFALSE),
191 fTriggerPatchInfo(0),
199 fFiredTriggerBitMap(0),
200 fFiredTriggerClasses(),
208 fHistTrialsVsPtHardNoSel(0),
209 fHistEventsVsPtHardNoSel(0),
210 fHistXsectionVsPtHardNoSel(0),
211 fHistTriggerClassesNoSel(0),
212 fHistZVertexNoSel(0),
213 fHistCentralityNoSel(0),
214 fHistEventPlaneNoSel(0),
215 fHistTrialsVsPtHard(0),
216 fHistEventsVsPtHard(0),
217 fHistXsectionVsPtHard(0),
218 fHistTriggerClasses(0),
223 fHistEventRejection(0),
277 AliVEventHandler *evhand = mgr->GetInputEventHandler();
279 if (evhand->InheritsFrom(
"AliESDInputHandler")) {
287 AliError(
"Event handler not found!");
291 AliError(
"Analysis manager not found!");
307 fHistEventsVsPtHard =
new TH1F(
"fHistEventsVsPtHard",
"fHistEventsVsPtHard", 1000, 0, 1000);
312 fHistTrialsVsPtHard =
new TH1F(
"fHistTrialsVsPtHard",
"fHistTrialsVsPtHard", 1000, 0, 1000);
317 fHistXsectionVsPtHard =
new TProfile(
"fHistXsectionVsPtHard",
"fHistXsectionVsPtHard", 1000, 0, 1000);
337 fHistTrials =
new TH1F(
"fHistTrials",
"fHistTrials", 50, 0, 50);
338 fHistTrials->GetXaxis()->SetTitle(
"#it{p}_{T,hard} bin");
342 fHistEvents =
new TH1F(
"fHistEvents",
"fHistEvents", 50, 0, 50);
343 fHistEvents->GetXaxis()->SetTitle(
"#it{p}_{T,hard} bin");
347 fHistXsection =
new TProfile(
"fHistXsection",
"fHistXsection", 50, 0, 50);
353 fHistZVertex =
new TH1F(
"fHistZVertex",
"Z vertex position", 60, -30, 30);
358 fHistZVertexNoSel =
new TH1F(
"fHistZVertexNoSel",
"Z vertex position (no event selection)", 60, -30, 30);
364 fHistCentrality =
new TH1F(
"fHistCentrality",
"Event centrality distribution", 101, 0, 101);
369 fHistCentralityNoSel =
new TH1F(
"fHistCentralityNoSel",
"Event centrality distribution (no event selection)", 101, 0, 101);
374 fHistEventPlane =
new TH1F(
"fHistEventPlane",
"Event plane", 120, -TMath::Pi(), TMath::Pi());
379 fHistEventPlaneNoSel =
new TH1F(
"fHistEventPlaneNoSel",
"Event plane (no event selection)", 120, -TMath::Pi(), TMath::Pi());
386 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
410 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
418 #if ROOT_VERSION_CODE < ROOT_VERSION(6,4,2)
563 if (file.Contains(
".zip#")) {
564 Ssiz_t pos1 = file.Index(
"root_archive",12,0,TString::kExact);
565 Ssiz_t pos = file.Index(
"#",1,pos1,TString::kExact);
566 Ssiz_t pos2 = file.Index(
".root",5,TString::kExact);
567 file.Replace(pos+1,pos2-pos1,
"");
570 file.ReplaceAll(
gSystem->BaseName(file.Data()),
"");
572 AliDebug(1,Form(
"File name: %s",file.Data()));
577 strPthard.Remove(strPthard.Last(
'/'));
578 strPthard.Remove(strPthard.Last(
'/'));
579 if (strPthard.Contains(
"AOD")) strPthard.Remove(strPthard.Last(
'/'));
580 strPthard.Remove(0,strPthard.Last(
'/')+1);
581 if (strPthard.IsDec()) {
582 pthard = strPthard.Atoi();
585 AliWarning(Form(
"Could not extract file number from path %s", strPthard.Data()));
590 TFile *fxsec = TFile::Open(Form(
"%s%s",file.Data(),
"pyxsec.root"));
594 fxsec = TFile::Open(Form(
"%s%s",file.Data(),
"pyxsec_hists.root"));
600 TKey* key =
static_cast<TKey*
>(fxsec->GetListOfKeys()->At(0));
610 fXsec =
static_cast<TProfile*
>(list->FindObject(
"h1Xsec"))->GetBinContent(1);
611 fTrials =
static_cast<TH1F*
>(list->FindObject(
"h1Trials"))->GetBinContent(1);
615 TTree *xtree =
static_cast<TTree*
>(fxsec->Get(
"Xsection"));
622 xtree->SetBranchAddress(
"xsection",&xsection);
623 xtree->SetBranchAddress(
"ntrials",&ntrials);
650 TTree *tree = AliAnalysisManager::GetAnalysisManager()->GetTree();
652 AliError(Form(
"%s - UserNotify: No current tree!",GetName()));
660 TFile *curfile = tree->GetCurrentFile();
662 AliError(Form(
"%s - UserNotify: No current file!",GetName()));
667 if (chain) tree = chain->GetTree();
675 if (!res)
return kTRUE;
697 AliError(Form(
"%s: Could not retrieve event! Returning!", GetName()));
702 fGeom = AliEMCALGeometry::GetInstanceFromRunNumber(InputEvent()->
GetRunNumber());
704 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()));
710 TTree *aodTree = AliAnalysisManager::GetAnalysisManager()->GetTree();
711 aodTree->SetBranchStatus(
"D0toKpi.fPx", 0);
712 aodTree->SetBranchStatus(
"D0toKpi.fPy", 0);
713 aodTree->SetBranchStatus(
"D0toKpi.fPz", 0);
714 aodTree->SetBranchStatus(
"D0toKpi.fd0", 0);
715 aodTree->SetBranchStatus(
"Charm3Prong.fPx", 0);
716 aodTree->SetBranchStatus(
"Charm3Prong.fPy", 0);
717 aodTree->SetBranchStatus(
"Charm3Prong.fPz", 0);
718 aodTree->SetBranchStatus(
"Charm3Prong.fd0", 0);
719 aodTree->SetBranchStatus(
"Dstar.fPx", 0);
720 aodTree->SetBranchStatus(
"Dstar.fPy", 0);
721 aodTree->SetBranchStatus(
"Dstar.fPz", 0);
722 aodTree->SetBranchStatus(
"Dstar.fd0", 0);
734 AliError(Form(
"%s: Could not retrieve cells %s!", GetName(),
fCaloCellsName.Data()));
742 AliError(Form(
"%s: Could not retrieve calo triggers %s!", GetName(),
fCaloTriggersName.Data()));
771 const AliESDRun *run = esd->GetESDRun();
772 TString beamType = run->GetBeamType();
773 if (beamType ==
"p-p")
775 else if (beamType ==
"A-A")
777 else if (beamType ==
"p-A")
782 Int_t runNumber = InputEvent()->GetRunNumber();
784 if ((runNumber >= 136833 && runNumber <= 139517) ||
785 (runNumber >= 167693 && runNumber <= 170593) ||
786 (runNumber >= 244824 && runNumber <= 246994)) {
788 }
else if ((runNumber >= 188356 && runNumber <= 188366) ||
789 (runNumber >= 195164 && runNumber <= 197388) ||
790 (runNumber >= 265015 && runNumber <= 267166)) {
826 Bool_t acceptedTrgClassFound = kFALSE;
830 if (fired_trg.find(acc_trg) != std::string::npos) {
831 acceptedTrgClassFound = kTRUE;
835 if (acceptedTrgClassFound)
break;
838 if (!acceptedTrgClassFound) {
847 if (fired_trg.find(rej_trg) != std::string::npos) {
855 if (fMinCent < fMaxCent && fMaxCent > 0) {
856 if (fCent < fMinCent || fCent >
fMaxCent) {
920 TClonesArray *arr = 0;
922 if (!sname.IsNull()) {
923 arr =
dynamic_cast<TClonesArray*
>(InputEvent()->FindListObject(sname));
925 AliWarning(Form(
"%s: Could not retrieve array with name %s!", GetName(), name));
935 TString objname(arr->GetClass()->GetName());
937 if (!cls.InheritsFrom(clname)) {
938 AliWarning(Form(
"%s: Objects of type %s in %s are not inherited from %s!",
939 GetName(), cls.GetName(), name, clname));
962 std::stringstream firedClasses(InputEvent()->GetFiredTriggerClasses().
Data());
963 while (firedClasses.good()) {
964 std::string trgClass;
965 firedClasses >> trgClass;
973 fFiredTriggerBitMap =
static_cast<AliVAODHeader*
>(InputEvent()->GetHeader())->GetOfflineTrigger();
976 const AliVVertex *vert = InputEvent()->GetPrimaryVertex();
982 const AliVVertex *vertSPD = InputEvent()->GetPrimaryVertexSPD();
998 AliMultSelection *MultSelection =
static_cast<AliMultSelection*
>(InputEvent()->FindListObject(
"MultSelection"));
1000 fCent = MultSelection->GetMultiplicityPercentile(
fCentEst.Data());
1003 AliWarning(Form(
"%s: Could not retrieve centrality information! Assuming 99", GetName()));
1007 AliCentrality *aliCent = InputEvent()->GetCentrality();
1012 AliWarning(Form(
"%s: Could not retrieve centrality information! Assuming 99", GetName()));
1021 AliEventplane *aliEP = InputEvent()->GetEventplane();
1023 fEPV0 = aliEP->GetEventplane(
"V0" ,InputEvent());
1024 fEPV0A = aliEP->GetEventplane(
"V0A",InputEvent());
1025 fEPV0C = aliEP->GetEventplane(
"V0C",InputEvent());
1027 AliWarning(Form(
"%s: Could not retrieve event plane information!", GetName()));
1033 fPythiaHeader =
dynamic_cast<AliGenPythiaEventHeader*
>(MCEvent()->GenEventHeader());
1036 AliAODMCHeader* aodMCH =
dynamic_cast<AliAODMCHeader*
>(InputEvent()->FindListObject(AliAODMCHeader::StdBranchName()));
1039 for (
UInt_t i = 0;i<aodMCH->GetNCocktailHeaders();i++) {
1040 fPythiaHeader =
dynamic_cast<AliGenPythiaEventHeader*
>(aodMCH->GetCocktailHeader(i));
1070 if (branchName.size() == 0)
return 0;
1074 if (branchName ==
"tracks" || branchName ==
"Tracks") cont =
new AliTrackContainer(branchName.c_str());
1078 if (contName.size() > 0) cont->SetName(contName.c_str());
1095 if (branchName.size() == 0)
return 0;
1099 if (contName.size() > 0) cont->SetName(contName.c_str());
1113 std::map<std::string, AliParticleContainer*>::const_iterator cont_it =
fParticleCollArray.find(name);
1115 else return nullptr;
1125 std::map<std::string, AliClusterContainer*>::const_iterator cont_it =
fClusterCollArray.find(name);
1127 else return nullptr;
1137 if (!(InputEvent()->FindListObject(obj->GetName()))) {
1138 InputEvent()->AddObject(obj);
1142 AliFatal(Form(
"%s: Container with name %s already present. Aborting", GetName(), obj->GetName()));
1158 AliWarning(Form(
"%s - AliAnalysisTaskEmcalBase::IsTrackInEmcalAcceptance - Geometry is not available!", GetName()));
1165 if (part->Phi() > minPhi && part->Phi() < maxPhi) {
1175 axis->SetBinLabel(1,
"NullObject");
1176 axis->SetBinLabel(2,
"Pt");
1177 axis->SetBinLabel(3,
"Acceptance");
1178 axis->SetBinLabel(4,
"MCLabel");
1179 axis->SetBinLabel(5,
"BitMap");
1180 axis->SetBinLabel(6,
"HF cut");
1181 axis->SetBinLabel(7,
"Bit6");
1182 axis->SetBinLabel(8,
"NotHybridTrack");
1183 axis->SetBinLabel(9,
"MCFlag");
1184 axis->SetBinLabel(10,
"MCGenerator");
1185 axis->SetBinLabel(11,
"ChargeCut");
1186 axis->SetBinLabel(12,
"MinDistanceTPCSectorEdge");
1187 axis->SetBinLabel(13,
"Bit12");
1188 axis->SetBinLabel(14,
"IsEMCal");
1189 axis->SetBinLabel(15,
"Time");
1190 axis->SetBinLabel(16,
"Energy");
1191 axis->SetBinLabel(17,
"ExoticCut");
1192 axis->SetBinLabel(18,
"Bit17");
1193 axis->SetBinLabel(19,
"Area");
1194 axis->SetBinLabel(20,
"AreaEmc");
1195 axis->SetBinLabel(21,
"ZLeadingCh");
1196 axis->SetBinLabel(22,
"ZLeadingEmc");
1197 axis->SetBinLabel(23,
"NEF");
1198 axis->SetBinLabel(24,
"MinLeadPt");
1199 axis->SetBinLabel(25,
"MaxTrackPt");
1200 axis->SetBinLabel(26,
"MaxClusterPt");
1201 axis->SetBinLabel(27,
"Flavour");
1202 axis->SetBinLabel(28,
"TagStatus");
1203 axis->SetBinLabel(29,
"MinNConstituents");
1204 axis->SetBinLabel(30,
"Bit29");
1205 axis->SetBinLabel(31,
"Bit30");
1206 axis->SetBinLabel(32,
"Bit31");
1217 TVector3 vect1(part1->Px(), part1->Py(), part1->Pz());
1218 TVector3 vect2(part2->Px(), part2->Py(), part2->Pz());
1219 Double_t z = (vect1 * vect2) / (vect2 * vect2);
1231 TVector3 vect2(part2->Px(), part2->Py(), part2->Pz());
1232 Double_t z = (vect1 * vect2) / (vect2 * vect2);
1251 Double_t veta = t->GetTrackEtaOnEMCal();
1252 Double_t vphi = t->GetTrackPhiOnEMCal();
1255 v->GetPosition(pos);
1260 phidiff=TVector2::Phi_mpi_pi(vphi-cphi);
1271 if (t->TestBit(BIT(22)) && !t->TestBit(BIT(23)))
1273 else if (!t->TestBit(BIT(22)) && t->TestBit(BIT(23)))
1275 else if (t->TestBit(BIT(22)) && t->TestBit(BIT(23)))
1294 if (aodTrack->TestFilterBit(filterBit1)) {
1297 else if (aodTrack->TestFilterBit(filterBit2)) {
1298 if ((aodTrack->GetStatus()&AliVTrack::kITSrefit)!=0) {
1320 if ((runnumber >= 136833 && runnumber <= 139517) ||
1321 (runnumber >= 167693 && runnumber <= 170593) ||
1322 (runnumber >= 244824 && runnumber <= 246994)) {
1325 else if ((runnumber > 188356 && runnumber <= 188503) ||
1326 (runnumber >= 195164 && runnumber <= 197388) ||
1327 (runnumber >= 265077 && runnumber <= 999999)) {
1348 AliDebug(1,Form(
"Njets: %d, pT Hard %f",nTriggerJets,
fPtHard));
1351 for (
Int_t ijet = 0; ijet< nTriggerJets; ijet++) {
1354 jet.SetPxPyPzE(tmpjet[0],tmpjet[1],tmpjet[2],tmpjet[3]);
1356 AliDebug(1,Form(
"jet %d; pycell jet pT %f",ijet, jet.Pt()));
1360 AliInfo(Form(
"Reject jet event with : pT Hard %2.2f, pycell jet pT %2.2f, rejection factor %1.1f\n",
fPtHard, jet.Pt(),
fPtHardAndJetPtFactor));
1370 if ((
Bool_t)mccluscont) {
1371 for (
auto cluster : mccluscont->all()) {
1372 Float_t ecluster = cluster->E();
1386 if ((
Bool_t)mcpartcont) {
1387 for (
auto mctrack : mcpartcont->
all()) {
1388 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
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
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
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
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="")
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
std::map< std::string, AliParticleContainer * > fParticleCollArray
particle/track collection array
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
Bool_t fUseNewCentralityEstimation
Use new centrality estimation (for 2015 data)
TClonesArray * fTriggerPatchInfo
!trigger patch info array
Double_t fMaxPtHard
select maximum pt hard (MC)
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)