1 #ifndef ALIANALYSISTASKSEXIC2ELEXIFROMAODTRACKS_H
2 #define ALIANALYSISTASKSEXIC2ELEXIFROMAODTRACKS_H
24 #include "AliAnalysisTaskSE.h"
25 #include "AliAODEvent.h"
36 class AliAODMCParticle;
37 class AliEventPoolManager;
52 virtual void UserExec(Option_t *option);
59 void FillMCROOTObjects(AliAODMCParticle *part, AliAODMCParticle *mcepart, AliAODMCParticle *mcv0part, Int_t decaytype);
64 void MakeAnalysis(AliAODEvent *aod, TClonesArray *mcArray);
66 void SelectCascade(
const AliVEvent *event,Int_t nCasc,Int_t &nSeleCasc, Bool_t *seleCascFlags, TClonesArray *mcArray);
67 void SelectTrack(
const AliVEvent *event, Int_t trkEntries, Int_t &nSeleTrks,Bool_t *seleFlags, TClonesArray *mcArray);
87 Int_t
MatchToMC(
AliAODRecoCascadeHF *elobj, TClonesArray *mcArray, Int_t *pdgarray_ele, Int_t *pdgarray_casc, Int_t *labelarray_ele, Int_t *labelarray_casc, Int_t &ngen_ele, Int_t &ngen_casc);
88 Int_t
MatchToMCCascade(AliAODcascade *theCascade, Int_t pdgabscasc, Int_t *pdgDgcasc, Int_t *pdgDgv0, TClonesArray *mcArray)
const;
89 void GetMCDecayHistory(AliAODMCParticle *mcpart, TClonesArray *mcArray, Int_t *pdgarray, Int_t *labelarray, Int_t &ngen);
124 AliAODVertex *
CallPrimaryVertex(AliAODcascade *casc, AliAODTrack *trk, AliAODEvent *evt);
125 AliAODVertex*
PrimaryVertex(
const TObjArray *trkArray,AliVEvent *event);
Float_t fVtxZ
primary vertex
THnSparse * fHistoEleXiMassvsElePtWS2
! e-Xi mass spectra (wrong-sign)
AliAnalysisTaskSEXic2eleXifromAODtracks()
THnSparse * fHistoElePtvsEtaRS
! e spectra (right-sign)
Bool_t GetMCDoPairAnalysis() const
Bool_t fWriteVariableTree
flag for event selected
TH2F * fHistoElectronQovPtvsPhi
! Electron phi distribution
THnSparse * fHistoXicMCS
! electron in mcArray
TH2F * fHistoLambdaPtvsDl
! Lambda proper life time distribution
Double_t fCentBins[100]
number of centrality bins
THnSparse * fHistoElePtvsXiPtMCGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoXicMCGen2
! electron in mcArray
THnSparse * fHistoEleXiMassBFeeddownMCS1
! e-Xi mass spectra (Efficiency numerator)
THnSparse * fHistoEleXiMassRSMixAway
! e-Xi mass spectra (right-sign)
Bool_t fMCDoPairAnalysis
MC eventtype to analyze 1: ccbar 2: bbbar.
TH1F * fHistoBachPtMCGen
! Bachelor pT histogram (efficiency denominator)
TH2D * fHistoResponseEleXiPt
! Response function e-Xi pT <- XicPt
THnSparse * fHistoElePtvsd0RS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoEleXiMassWSMix2
! e-Xi mass spectra (wrong-sign)
TH2F * fHistoElectronTPCPIDSelTOFEtaDep[8]
! TPC electron PID after TOF 3 sigma cut Eta dep
void ResetPool(Int_t poolIndex)
THnSparse * fHistoEleXiMassWSSideAway
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassRSMix1
! e-Xi mass spectra (right-sign)
void FillROOTObjects(AliAODRecoCascadeHF *elobj, AliAODcascade *casc, AliAODTrack *trk, TClonesArray *mcArray)
Bool_t fWriteMCVariableTree
flag to decide whether to write the candidate variables on a tree variables
Int_t MatchToMCCascade(AliAODcascade *theCascade, Int_t pdgabscasc, Int_t *pdgDgcasc, Int_t *pdgDgv0, TClonesArray *mcArray) const
Float_t * fCandidateCascVariables
! variables to be written to the tree
AliAnalysisTaskSEXic2eleXifromAODtracks & operator=(const AliAnalysisTaskSEXic2eleXifromAODtracks &source)
THnSparse * fHistoEleXiMassvsElePtRSSide1
! e-Xi mass-ept spectra (right-sign)
void DefineMCTreeVariables()
THnSparse * fHistoEleXiMassRSAway
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsEtaWS
! e spectra (wrong-sign)
void DefineMCEleTreeVariables()
THnSparse * fHistoEleXiMassRSMix2
! e-Xi mass spectra (right-sign)
Int_t GetMCEventType() const
THnSparse * fHistoElePtvsXiPtRSMix
! e-Xi spectra (right-sign, mix)
THnSparse * fHistoEleXiMassMCS2
! e-Xi mass spectra (Efficiency numerator)
THnSparse * fHistoXicElectronMCGen1
! electron in mcArray
Bool_t fIsINT7
Central trigger event.
TH2F * fHistoXiQovPtvsPhi
! Xi phi distribution
THnSparse * fHistoXicElectronMCGen
! electron in mcArray
Float_t * fCandidateMCVariables
! variables to be written to the tree
Bool_t fIsEMC7
INT7 trigger event.
void SelectTrack(const AliVEvent *event, Int_t trkEntries, Int_t &nSeleTrks, Bool_t *seleFlags, TClonesArray *mcArray)
THnSparse * fHistoElePtvsCutVarsRS[23]
! e pt- cut variables (Right-sign)
TH1F * fHistoBachPt
! Bachelor pT histogram
THnSparse * fHistoEleXiMassRSSideAway
! e-Xi mass spectra (right-sign)
THnSparse * fHistoXicElectronMCGen2
! electron in mcArray
void FillMCEleROOTObjects(AliAODMCParticle *mcepart, TClonesArray *mcArray)
TList * fOutputAll
! User Output slot 3 //analysis histograms
THnSparse * fHistoElePtvsd0MCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoXicElectronMCS
! electron in mcArray
THnSparse * fHistoEleXiMassvsElePtRS2
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsd0PromptMCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoElePtvsXiPtvsXicPtMCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoEleXiMassWSSide
! e-Xi mass spectra (wrong-sign)
TTree * fMCCascVariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoEleXiMassWSMixAway
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassvsElePtMCGen
! e-Xi mass-ept spectra (Efficiency denominator)
THnSparse * fHistoElectronMCGen
! electron in mcArray (only from charmed baryon)
THnSparse * fHistoEleXiMassvsElePtRS
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassvsElePtMCS1
! e-Xi mass-ept spectra (Efficiency numerator)
void FillElectronROOTObjects(AliAODTrack *trk, TClonesArray *mcArray)
THnSparse * fHistoEleXiMassRS
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsEtaWSMix
! e spectra (wrong-sign, mix)
TH1F * fHistoMCDeltaPhiccbar
! MC Event Type
TH1F * fHistoMCEventType
! MC Event Type
THnSparse * fHistoEleXiMassvsElePtRSMix2
! e-Xi mass-ept spectra (right-sign)
Int_t MatchToMC(AliAODRecoCascadeHF *elobj, TClonesArray *mcArray, Int_t *pdgarray_ele, Int_t *pdgarray_casc, Int_t *labelarray_ele, Int_t *labelarray_casc, Int_t &ngen_ele, Int_t &ngen_casc)
THnSparse * fHistoElePtvsXiPtWSMix
! e-Xi spectra (wrong-sign, mix)
TTree * fCascVariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoEleXiMassvsElePtWSMix2
! e-Xi mass-ept spectra (wrong-sign)
virtual void UserCreateOutputObjects()
Implementation of interface methods.
void SetMCDoPairAnalysis(Bool_t a)
Float_t fTriggerCheck
Run Number.
THnSparse * fHistoXicElectronMCS2
! electron in mcArray
THnSparse * fHistoElePtvsd0WS
! e pt-d0 spectra (wrong-sign)
Float_t * fCandidateEleVariables
! variables to be written to the tree
void DefineGeneralHistograms()
TTree * fMCEleVariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoEleXiMassvsElePtWSSide
! e-Xi mass-ept spectra (wrong-sign)
TH1F * fHCentrality
! Histogram to check Centrality
void FillMCROOTObjects(AliAODMCParticle *part, AliAODMCParticle *mcepart, AliAODMCParticle *mcv0part, Int_t decaytype)
Bool_t GetWriteMCVariableTree() const
THnSparse * fHistoEleXiMassPromptMCS1
! e-Xi mass spectra (Efficiency numerator)
TH2F * fHistoElePtWS
! e spectra (wrong-sign)
THnSparse * fHistoElePtvsEtaMCGen
! e spectra efficiency denominator
THnSparse * fHistoEleXiMassMCGen
! e-Xi mass spectra (Efficiency denominator)
TH2F * fHistoElePtRS
! e spectra (right-sign)
THnSparse * fHistoElePtvsEtaMCS
! e spectra efficiency numerator
TTree * fMCVariablesTree
! tree of the candidate variables after track selection on output slot 4
TH2F * fHistoXiMassvsPtMCGen
! Xi mass vs pt histogram
THnSparse * fHistoElePtvsXiPtMCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoEleXiMassWS
! e-Xi mass spectra (wrong-sign)
TH2F * fHistoElectronTOFPIDSelTPC
! TOF electron PID after TPC cut
void SetWriteEachVariableTree(Bool_t a)
THnSparse * fHistoElePtvsCutVarsWS[23]
! e pt- cut variables (Wrong-sign)
THnSparse * fHistoEleXiMassPromptMCS
! e-Xi mass spectra (Efficiency numerator)
TH1F * fHistoBachPtMCS
! Bachelor pT histogram (efficiency numerator)
void SetMCEventType(Int_t theevt)
void MakeAnalysis(AliAODEvent *aod, TClonesArray *mcArray)
void SetPoolCentBinLimits(Int_t Ncentbins, const Double_t *CentBins)
AliAODVertex * PrimaryVertex(const TObjArray *trkArray, AliVEvent *event)
THnSparse * fHistoEleXiMassRSSide2
! e-Xi mass spectra (right-sign)
TH2F * fHistoLambdaPtvsDlMCS
! Lambda proper life time distribution (mc)
THnSparse * fHistoEleXiMassvsElePtMCS
! e-Xi mass-ept spectra (Efficiency numerator)
THnSparse * fHistoEleXiMassvsElePtMCS2
! e-Xi mass-ept spectra (Efficiency numerator)
void DefineCascTreeVariables()
void FillMCCascROOTObjects(AliAODMCParticle *mccpart, TClonesArray *mcArray)
void FillMCGenPairROOTObjects(AliAODMCParticle *mcparte, AliAODMCParticle *mcpartv, TClonesArray *mcArray)
Bool_t fUseCentralityV0M
Stores trigger information.
THnSparse * fHistoElePtvsCutVarsMCS[23]
! e pt- cut variables (MCS)
TH2F * fHistoOmegaMassvsPt
! Omega mass vs pt histogram
THnSparse * fHistoXiMCGen
! Xi in mcArray (only from charmed baryon)
TH1F * fHistoMCNccbar
! MC Event Type
THnSparse * fHistoElePtvsXiPtRS
! e-Xi spectra (right-sign)
TH1F * fHTrigger
! Histogram to check Trigger
Int_t GetPoolIndex(Double_t zvert, Double_t mult)
THnSparse * fHistoXicMCGen
! electron in mcArray
THnSparse * fHistoEleXiMassvsElePtRSMix1
! e-Xi mass-ept spectra (right-sign)
THnSparse * fHistoEleXiMassvsElePtWSMix1
! e-Xi mass-ept spectra (wrong-sign)
THnSparse * fHistoXicMCGen1
! electron in mcArray
TH1F * fHistonEvtvsRunNumber
! evt vs runnumber
void DoEventMixingWithPools(Int_t index)
void DefineAnalysisHistograms()
THnSparse * fHistoEleXiMassvsElePtMCGen1
! e-Xi mass-ept spectra (Efficiency denominator)
TH2F * fHistoElePtMCS
! e spectra (Efficiency numerator)
THnSparse * fHistoEleXiMassWSMix1Away
! e-Xi mass spectra (wrong-sign)
TH2F * fHistoElectronTOFSelPID
! TOF electron PID after selection
Float_t * fCandidateMCCascVariables
! variables to be written to the tree
Bool_t GetUseCentralityV0M() const
Bool_t MakeMCAnalysis(TClonesArray *mcArray)
Float_t * fCandidateMCGenPairVariables
! variables to be written to the tree
Float_t * fCandidateMCEleVariables
! variables to be written to the tree
TH1F * fHistonElevsRunNumber
! nele vs runnumber
THnSparse * fHistoEleXiMassMCS
! e-Xi mass spectra (Efficiency numerator)
TList * fOutput
Use MC info.
TObjArray * fCascadeTracks2
array of xi+compatible tracks
TTree * fEleVariablesTree
flag to decide whether to write the candidate variables on a tree variables
void DefineMCGenPairTreeVariables()
TObjArray * fElectronTracks
unique event id for mixed event check
TH1F * fCEvents
! Histogram to check selected events
void DefineEleTreeVariables()
TH2F * fHistoElectronTPCPIDSelTOFSmallEta
! TPC electron PID after TOF 3 sigma cut (|eta|<0.6)
Int_t fEvNumberCounter
Stores trigger information.
THnSparse * fHistoEleXiMassPromptMCS2
! e-Xi mass spectra (Efficiency numerator)
THnSparse * fHistoElePtvsd0WSMix
! e pt-d0 spectra (wrong-sign, mix)
TH2F * fHistoElectronTPCPIDSelTOF
! TPC electron PID after TOF 3 sigma cut
void SetPoolPVzBinLimits(Int_t Nzvtxbins, const Double_t *ZvtxBins)
Bool_t GetWriteEachVariableTree() const
AliESDVertex * fV1
primary vertex
TH2F * fHistoElectronTOFPID
! TOF electron PID
virtual void Terminate(Option_t *option)
THnSparse * fHistoEleXiMassvsElePtWSSide2
! e-Xi mass-ept spectra (wrong-sign)
THnSparse * fHistoXicMCS2
! electron in mcArray
AliNormalizationCounter * fCounter
! Counter for normalization
Int_t fNzVtxBins
maximum number of events to be used in event mixing
THnSparse * fHistoEleXiMassWSAway
! e-Xi mass spectra (wrong-sign)
TObjArray * fCascadeTracks1
array of e-compatible tracks
THnSparse * fHistoEleXiMassRSSide
! e-Xi mass spectra (right-sign)
void SetUseCentralityV0M(Bool_t centon)
void SetNumberOfEventsForMixing(Int_t events)
void SetMC(Bool_t theMCon)
set MC usage
Int_t fNumberOfEventsForMixing
flag for event mixing
void SetEventMixingWithPools()
mixing
Int_t fMCEventType
EvNumber counter.
TH2F * fHistoElePtMCGen
! e spectra (Efficiency denominator)
THnSparse * fHistoEleXiMassvsElePtMCGen2
! e-Xi mass-ept spectra (Efficiency denominator)
THnSparse * fHistoElePtvsd0RSMix
! e pt-d0 spectra (right-sign, mix)
virtual ~AliAnalysisTaskSEXic2eleXifromAODtracks()
AliRDHFCutsXictoeleXifromAODtracks * fAnalCuts
AliAODRecoCascadeHF * MakeCascadeHF(AliAODcascade *casc, AliAODTrack *trk, AliAODEvent *aod, AliAODVertex *vert)
THnSparse * fHistoEleXiMassRS2
! e-Xi mass spectra (right-sign)
void FillCascROOTObjects(AliAODcascade *casc, TClonesArray *mcArray)
Bool_t fIsSemi
MB trigger event.
TTree ** fEventBuffer
number of pools
THnSparse * fHistoEleXiMassWSMix1
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoElePtvsXiPtWS
! e-Xi spectra (wrong-sign)
THnSparse * fHistoEleXiMassAway
! e-Xi mass spectra
AliAODVertex * ReconstructSecondaryVertex(AliAODcascade *casc, AliAODTrack *trk, AliAODEvent *aod)
void DefineTreeVariables()
TH2F * fHistoXiMassvsPtMCS
! Xi mass vs pt histogram
THnSparse * fHistoEleXiMassBFeeddownMCS2
! e-Xi mass spectra (Efficiency numerator)
AliAODVertex * CallPrimaryVertex(AliAODcascade *casc, AliAODTrack *trk, AliAODEvent *evt)
THnSparse * fHistoEleXiMassvsElePtWS1
! e-Xi mass spectra (wrong-sign)
TH2F * fHistoElectronTPCPID
! TPC electron PID
TH1F * fHistod0Bach
! Bachelor d0 histogram
void DefineMCCascTreeVariables()
TH2F * fHistoElectronTPCPIDSelTOFLargeEta
! TPC electron PID after TOF 3 sigma cut (0.8>|eta|>0.6)
Bool_t fReconstructPrimVert
THnSparse * fHistoEleXiMassvsElePtWSMix
! e-Xi mass-ept spectra (wrong-sign)
THnSparse * fHistoEleXiMassRS1Away
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassMCS1
! e-Xi mass spectra (Efficiency numerator)
Bool_t fIsMB
Reconstruct primary vertex excluding candidate tracks.
THnSparse * fHistoEleXiMassRSMix2Away
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassWS1Away
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoElePtvsEtaRSMix
! e spectra (right-sign, mix)
TTree * fMCGenPairVariablesTree
! tree of mcArray analysis pair tree
Float_t fCentrality
magnetic field value [kG]
THnSparse * fHistoXicMCS1
! electron in mcArray
TH1F * fHistonXivsRunNumber
! nxi vs runnumber
TH2F * fHistoElePtRSMix
! e spectra (right-sign, mix)
THnSparse * fHistoEleXiMassvsElePtRSMix
! e-Xi mass-ept spectra (right-sign)
THnSparse * fHistoEleXiMassWSMix2Away
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassWSSide1Away
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassRSSide2Away
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassWSSide1
! e-Xi mass spectra (wrong-sign)
Bool_t fWriteEachVariableTree
Bool_t fIsCent
SemiCentral trigger event.
THnSparse * fHistoEleXiMassWS2
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoElePtvsd0BFeeddownMCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoEleXiMassBFeeddownMCS
! e-Xi mass spectra (Efficiency numerator)
THnSparse * fHistoEleXiMassvsElePtRSSide2
! e-Xi mass-ept spectra (right-sign)
THnSparse * fHistoEleXiMassWS1
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassWSSide2
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassvsElePtRS1
! e-Xi mass spectra (right-sign)
TH1F * fHistoMCXic0Decays
! MC Event Type
THnSparse * fHistoEleXiMassvsElePtRSSide
! e-Xi mass-ept spectra (right-sign)
Float_t * fCandidateVariables
EMC7 trigger event.
TList * fListCuts
! User output slot 2 // Cuts
void SelectCascade(const AliVEvent *event, Int_t nCasc, Int_t &nSeleCasc, Bool_t *seleCascFlags, TClonesArray *mcArray)
THnSparse * fHistoXicElectronMCS1
! electron in mcArray
TH2F * fHistoXiMassvsPt
! Xi mass vs pt histogram
THnSparse * fHistoEleXiMassWS2Away
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassRSMix1Away
! e-Xi mass spectra (right-sign)
TH2F * fHistoElectronTPCSelPID
! TPC electron PID after selection
void GetMCDecayHistory(AliAODMCParticle *mcpart, TClonesArray *mcArray, Int_t *pdgarray, Int_t *labelarray, Int_t &ngen)
void FillMixROOTObjects(TLorentzVector *et, TLorentzVector *ev, Int_t charge)
THnSparse * fHistoEleXiMassWSSide2Away
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassRS2Away
! e-Xi mass spectra (right-sign)
virtual void UserExec(Option_t *option)
void SetReconstructPrimVert(Bool_t a)
THnSparse * fHistoEleXiMass
Flag to do pair analysis.
Double_t fZvtxBins[100]
number of z vrtx bins
THnSparse * fHistoEleXiMassRSSide1
! e-Xi mass spectra (right-sign)
THnSparse * fHistoEleXiMassRSSide1Away
! e-Xi mass spectra (right-sign)
void SetWriteMCVariableTree(Bool_t a)
THnSparse * fHistoEleXiMassRSMix
! e-Xi mass spectra (right-sign)
Int_t fRunNumber
Centrality.
THnSparse * fHistoEleXiMassvsElePtWSSide1
! e-Xi mass-ept spectra (wrong-sign)
THnSparse * fHistoEleXiMassvsElePtWS
! e-Xi mass spectra (wrong-sign)
THnSparse * fHistoEleXiMassWSMix
! e-Xi mass spectra (wrong-sign)
TH2D * fHistoResponseElePt
! Response function electron pT <- True ept
TH2F * fHistoElePtWSMix
! e spectra (wrong-sign, mix)
THnSparse * fHistoElePtvsXiPtMCXicGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoEleXiMassRS1
! e-Xi mass spectra (right-sign)
THnSparse * fHistoElePtvsXiPtvsXicPtMCGen
! e-Xi spectra efficiency numerator
TH2F * fHistoLambdaPtvsDlSide
! Lambda proper life time distribution (sideband)
TTree * fVariablesTree
flag to decide whether to write the candidate variables on a tree variables