24 #include "AliAnalysisManager.h"
25 #include "TParticle.h"
27 #include "AliPIDResponse.h"
29 #include "AliESDtrackCuts.h"
30 #include "AliAODMCParticle.h"
31 #include "AliAODMCHeader.h"
32 #include "AliAODEvent.h"
43 fV0ReaderName("V0ReaderV1"),
44 fConversionGammas(NULL),
45 fConversionCuts(NULL),
48 fNumberOfESDTracks(0),
54 ffillHistograms(kFALSE),
59 hNGoodESDTracks(NULL),
61 hNContributorsVertex(NULL),
68 hGammaChi2perNDF(NULL),
70 hGammaArmenteros(NULL),
71 hGammaCosinePointingAngle(NULL),
76 hElecNfindableClsTPC(NULL),
77 hPosiNfindableClsTPC(NULL),
81 hElectronITSdEdxP(NULL),
83 hElectronNSigmadEdxP(NULL),
84 hElectronNSigmadEdxEta(NULL),
85 hElectronNSigmaPiondEdxP(NULL),
86 hElectronNSigmaITSP(NULL),
87 hElectronNSigmaTOFP(NULL),
89 hPositronITSdEdxP(NULL),
91 hPositronNSigmadEdxP(NULL),
92 hPositronNSigmadEdxEta(NULL),
93 hPositronNSigmaPiondEdxP(NULL),
94 hPositronNSigmaITSP(NULL),
95 hPositronNSigmaTOFP(NULL),
126 fnGammaCandidates(1),
135 fV0ReaderName(
"V0ReaderV1"),
136 fConversionGammas(NULL),
137 fConversionCuts(NULL),
140 fNumberOfESDTracks(0),
146 ffillHistograms(kFALSE),
151 hNGoodESDTracks(NULL),
153 hNContributorsVertex(NULL),
154 hITSClusterPhi(NULL),
160 hGammaChi2perNDF(NULL),
162 hGammaArmenteros(NULL),
163 hGammaCosinePointingAngle(NULL),
168 hElecNfindableClsTPC(NULL),
169 hPosiNfindableClsTPC(NULL),
172 hElectrondEdxP(NULL),
173 hElectronITSdEdxP(NULL),
175 hElectronNSigmadEdxP(NULL),
176 hElectronNSigmadEdxEta(NULL),
177 hElectronNSigmaPiondEdxP(NULL),
178 hElectronNSigmaITSP(NULL),
179 hElectronNSigmaTOFP(NULL),
180 hPositrondEdxP(NULL),
181 hPositronITSdEdxP(NULL),
183 hPositronNSigmadEdxP(NULL),
184 hPositronNSigmadEdxEta(NULL),
185 hPositronNSigmaPiondEdxP(NULL),
186 hPositronNSigmaITSP(NULL),
187 hPositronNSigmaTOFP(NULL),
220 fnGammaCandidates(1),
226 DefineInput(0, TChain::Class());
227 DefineOutput(1, TList::Class());
256 hVertexZ =
new TH1F(
"Vertex_Z",
"Vertex_Z",300,-15,15);
264 else hNV0Tracks =
new TH1I(
"V0 Multiplicity",
"V0 Multiplicity",2000,0,2000);
269 hGammaPt =
new TH1F(
"Gamma_Pt",
"Gamma_Pt",250,0,25);
271 hGammaPhi =
new TH1F(
"Gamma_Phi",
"Gamma_Phi",360,0,2*TMath::Pi());
273 hGammaPhi_Pos =
new TH1F(
"GammaPhi_EtaPos",
"GammaPhi_EtaPos",360,0,2*TMath::Pi());
275 hGammaPhi_Neg =
new TH1F(
"GammaPhi_EtaNeg",
"GammaPhi_EtaNeg",360,0,2*TMath::Pi());
278 hGammaEta =
new TH1F(
"Gamma_Eta",
"Gamma_Eta",600,-1.5,1.5);
280 hGammaChi2perNDF =
new TH1F(
"Gamma_Chi2perNDF",
"Gamma_Chi2perNDF",500,0,100);
282 hGammaPsiPair =
new TH1F(
"Gamma_PsiPair",
"Gamma_PsiPair",500,0,2);
291 hElecPt =
new TH2F(
"Electron_Positron_Pt",
"Electron_Positron_Pt",250,0,25,250,0,25);
293 hElecEta =
new TH2F(
"Electron_Positron_Eta",
"Electron_Positron_Eta",600,-1.5,1.5,600,-1.5,1.5);
295 hElecPhi =
new TH2F(
"Electron_Positron_Phi",
"Electron_Positron_Phi",360,0,2*TMath::Pi(),360,0,2*TMath::Pi());
297 hElecClsTPC =
new TH1F(
"Electron_ClusterTPC",
"Electron_ClusterTPC",200,0,200);
299 hPosiClsTPC =
new TH1F(
"Positron_ClusterTPC",
"Positron_ClusterTPC",200,0,200);
302 hElecNfindableClsTPC =
new TH1F(
"Electron_findableClusterTPC",
"Electron_findableClusterTPC",100,0,1);
304 hPosiNfindableClsTPC =
new TH1F(
"Positron_findableClusterTPC",
"Positron_findableClusterTPC",100,0,1);
307 hElectrondEdxP =
new TH2F(
"Electron_dEdx_P",
"Electron_dEdx_P",100, 0.05, 20, 200, 0, 200);
310 hPositrondEdxP =
new TH2F(
"Positron_dEdx_P",
"Positron_dEdx_P",100, 0.05, 20, 200, 0, 200);
330 hElectronTOFP =
new TH2F(
"Electron_TOF_P",
"Electron_TOF_P",100, 0.05, 20, 600, -1000, 29000);
333 hPositronTOFP =
new TH2F(
"Positron_TOF_P",
"Positron_TOF_P",100, 0.05, 20, 600, -1000, 29000);
356 hInvMassPair =
new TH2F(
"Gamma_InvMassPair_Pt",
"Gamma invariant mass vs Pt",200,0,0.2,250,0,25);
469 printf(
" Gamma Conversion QA Task %s :: Eta Shift Manually Set to %f \n\n",
480 if(eventQuality != 0){
487 Int_t eventNotAccepted =
489 if(eventNotAccepted)
return;
524 if (gamma==NULL)
continue;
552 AliVEvent*
event = (AliVEvent*) InputEvent();
577 if(!negTrack||!posTrack)
return;
593 fDaughterProp(3) = pidResonse->NumberOfSigmasTPC(posTrack,AliPID::kElectron);
594 fDaughterProp(22) = pidResonse->NumberOfSigmasTPC(posTrack,AliPID::kPion);
596 fDaughterProp(10) = pidResonse->NumberOfSigmasTPC(negTrack,AliPID::kElectron);
597 fDaughterProp(23) = pidResonse->NumberOfSigmasTPC(negTrack,AliPID::kPion);
598 Int_t nPosClusterITS = 0;
599 Int_t nNegClusterITS = 0;
600 for(
Int_t itsLayer = 0; itsLayer<6;itsLayer++){
601 if(TESTBIT(negTrack->GetITSClusterMap(),itsLayer)){
604 if(TESTBIT(posTrack->GetITSClusterMap(),itsLayer)){
612 if (nPosClusterITS > 0 ){
614 fDaughterProp(20) = pidResonse->NumberOfSigmasITS(posTrack,AliPID::kElectron);
619 if (nNegClusterITS > 0 ){
621 fDaughterProp(21) = pidResonse->NumberOfSigmasITS(negTrack,AliPID::kElectron);
628 if((posTrack->GetStatus() & AliESDtrack::kTOFpid) && !(posTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
629 Double_t t0pos = pidResonse->GetTOFResponse().GetStartTime(posTrack->P());
631 posTrack->GetIntegratedTimes(timesPos,9);
632 Double_t TOFsignalPos = posTrack->GetTOFsignal();
633 Double_t dTpos = TOFsignalPos - t0pos - timesPos[0];
635 fDaughterProp(5) = pidResonse->NumberOfSigmasTOF(posTrack, AliPID::kElectron);
640 if((negTrack->GetStatus() & AliESDtrack::kTOFpid) && !(negTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
641 Double_t t0neg = pidResonse->GetTOFResponse().GetStartTime(negTrack->P());
643 negTrack->GetIntegratedTimes(timesNeg,9);
644 Double_t TOFsignalNeg = negTrack->GetTOFsignal();
645 Double_t dTneg = TOFsignalNeg - t0neg - timesNeg[0];
647 fDaughterProp(12) = pidResonse->NumberOfSigmasTOF(negTrack, AliPID::kElectron);
686 if(!negTrack||!posTrack)
return;
689 hElecPt->Fill(negTrack->Pt(),posTrack->Pt());
690 hElecEta->Fill(negTrack->Eta(),posTrack->Eta());
691 hElecPhi->Fill(negTrack->Phi(),posTrack->Phi());
699 hElectronNSigmadEdxP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasTPC(negTrack, AliPID::kElectron));
700 hElectronNSigmadEdxEta->Fill(negTrack->Eta() ,pidResonse->NumberOfSigmasTPC(negTrack, AliPID::kElectron));
703 hPositronNSigmadEdxP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasTPC(posTrack, AliPID::kElectron));
704 hPositronNSigmadEdxEta->Fill(posTrack->Eta() ,pidResonse->NumberOfSigmasTPC(posTrack, AliPID::kElectron));
708 if((negTrack->GetStatus() & AliESDtrack::kTOFpid)==0 && !(negTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
709 Double_t t0neg = pidResonse->GetTOFResponse().GetStartTime(negTrack->P());
711 negTrack->GetIntegratedTimes(timesNeg,9);
712 Double_t TOFsignalNeg = negTrack->GetTOFsignal();
713 Double_t dTneg = TOFsignalNeg - t0neg - timesNeg[0];
715 hElectronNSigmaTOFP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasTOF(negTrack, AliPID::kElectron));
717 if((posTrack->GetStatus() & AliESDtrack::kTOFpid)==0 && !(posTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
718 Double_t t0pos = pidResonse->GetTOFResponse().GetStartTime(posTrack->P());
720 posTrack->GetIntegratedTimes(timesPos,9);
721 Double_t TOFsignalPos = posTrack->GetTOFsignal();
722 Double_t dTpos = TOFsignalPos - t0pos - timesPos[0];
724 hPositronNSigmaTOFP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasTOF(posTrack, AliPID::kElectron));
727 Int_t nPosClusterITS = 0;
728 Int_t nNegClusterITS = 0;
729 for(
Int_t itsLayer = 0; itsLayer<6;itsLayer++){
730 if(TESTBIT(negTrack->GetITSClusterMap(),itsLayer)){
733 if(TESTBIT(posTrack->GetITSClusterMap(),itsLayer)){
737 Double_t negtrackPhi = negTrack->Phi();
738 Double_t postrackPhi = posTrack->Phi();
743 if (nPosClusterITS > 0 ){
745 hPositronNSigmaITSP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasITS(posTrack,AliPID::kElectron));
747 if (nNegClusterITS > 0 ){
749 hElectronNSigmaITSP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasITS(negTrack,AliPID::kElectron));
761 Bool_t selectPrimaries=kTRUE;
762 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
763 EsdTrackCuts->SetMaxDCAToVertexZ(2);
764 EsdTrackCuts->SetEtaRange(-0.8, 0.8);
765 EsdTrackCuts->SetPtRange(0.15);
767 for(
Int_t iTracks = 0; iTracks <
fInputEvent->GetNumberOfTracks(); iTracks++){
768 AliESDtrack* curTrack = (AliESDtrack*)
fInputEvent->GetTrack(iTracks);
769 if(!curTrack)
continue;
777 for(
Int_t iTracks = 0; iTracks<
fInputEvent->GetNumberOfTracks(); iTracks++){
778 AliAODTrack* curTrack = (AliAODTrack*)
fInputEvent->GetTrack(iTracks);
779 if(curTrack->GetID()<0)
continue;
780 if(!curTrack->IsHybridGlobalConstrainedGlobal())
continue;
781 if(TMath::Abs(curTrack->Eta())>0.8)
continue;
782 if(curTrack->Pt()<0.15)
continue;
794 Int_t motherLabelPhoton;
795 Int_t pdgCodePos = 0;
796 Int_t pdgCodeNeg = 0;
799 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
800 Double_t mcProdVtxX = primVtxMC->GetX();
801 Double_t mcProdVtxY = primVtxMC->GetY();
802 Double_t mcProdVtxZ = primVtxMC->GetZ();
805 if(posDaughter == NULL || negDaughter == NULL) {
809 }
else if( posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)) {
812 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
813 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
814 if(pdgCodePos==11 && pdgCodeNeg==11)
return 10;
815 if(pdgCodePos==11 && pdgCodeNeg==11 &&
816 (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1))
return 15;
818 if(pdgCodePos==211 && pdgCodeNeg==211) kind = 11;
819 if((pdgCodePos==211 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==211)) kind = 12;
820 if((pdgCodePos==11 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==11)) kind = 16;
821 if((pdgCodePos==11 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==11)) kind = 17;
822 if((pdgCodePos==211 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==211)) kind = 18;
823 if((pdgCodePos==211 && pdgCodeNeg==11) ||(pdgCodePos==11 && pdgCodeNeg==211)) kind = 13;
824 if(pdgCodePos==321 && pdgCodeNeg==321) kind = 14;
827 pdgCodePos=posDaughter->GetPdgCode();
828 pdgCodeNeg=negDaughter->GetPdgCode();
829 motherLabelPhoton= Photon->GetMother(0);
833 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
return 2;
834 else if ( !(pdgCodeNeg==pdgCodePos)){
835 if(pdgCode == 111)
return 3;
836 else if (pdgCode == 221)
return 4;
837 else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
838 if(pdgCode == 22 && gammaIsPrimary){
840 }
else if (pdgCode == 22){
855 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
856 if (AODMCTrackArray!=NULL && TruePhotonCandidate!=NULL){
857 AliAODMCParticle *posDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelPositive());
858 AliAODMCParticle *negDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelNegative());
859 Int_t pdgCodePos = 0;
860 Int_t pdgCodeNeg = 0;
862 if(posDaughter == NULL || negDaughter == NULL) {
864 }
else if( posDaughter->GetMother() != negDaughter->GetMother() || (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1)) {
866 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
867 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
868 if(pdgCodePos==11 && pdgCodeNeg==11) kind = 10;
869 if(pdgCodePos==11 && pdgCodeNeg==11 &&
870 (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1))kind = 15;
872 if(pdgCodePos==211 && pdgCodeNeg==211) kind = 11;
873 if((pdgCodePos==211 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==211)) kind = 12;
874 if((pdgCodePos==11 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==11)) kind = 16;
875 if((pdgCodePos==11 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==11)) kind = 17;
876 if((pdgCodePos==211 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==211)) kind = 18;
877 if((pdgCodePos==211 && pdgCodeNeg==11) ||(pdgCodePos==11 && pdgCodeNeg==211)) kind = 13;
878 if(pdgCodePos==321 && pdgCodeNeg==321) kind = 14;
880 AliAODMCParticle *Photon = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
881 pdgCodePos=posDaughter->GetPdgCode();
882 pdgCodeNeg=negDaughter->GetPdgCode();
884 if ( Photon->GetPdgCode())
885 pdgCode = Photon->GetPdgCode();
886 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11) kind = 2;
887 else if ( !(pdgCodeNeg==pdgCodePos)){
888 if(pdgCode == 111) kind = 3;
889 else if (pdgCode == 221) kind = 4;
890 else if (!(negDaughter->GetMCProcessCode() != 5 || posDaughter->GetMCProcessCode() !=5)){
891 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
892 Double_t mcProdVtxX = primVtxMC->GetX();
893 Double_t mcProdVtxY = primVtxMC->GetY();
894 Double_t mcProdVtxZ = primVtxMC->GetZ();
897 if(pdgCode == 22 && isPrimary){
899 }
else if (pdgCode == 22){
925 if(!PhotonCandidate)
continue;
935 Bool_t AODLabelPos = kFALSE;
936 Bool_t AODLabelNeg = kFALSE;
939 AliAODTrack *tempDaughter =
static_cast<AliAODTrack*
>(
fInputEvent->GetTrack(i));
952 if(AODLabelNeg && AODLabelPos){
956 if(!AODLabelPos || !AODLabelNeg){
958 AliAODTrack *tempDaughter =
static_cast<AliAODTrack*
>(
fInputEvent->GetTrack(i));
959 if(tempDaughter->GetID()<0){
973 if(AODLabelNeg && AODLabelPos){
977 if(!AODLabelPos || !AODLabelNeg){
978 cout<<
"WARNING!!! AOD TRACKS NOT FOUND FOR"<<endl;
998 TAxis *axisafter = histoRebin->GetXaxis();
999 Int_t bins = axisafter->GetNbins();
1000 Double_t from = axisafter->GetXmin();
1001 Double_t to = axisafter->GetXmax();
1004 Double_t factor = TMath::Power(to/from, 1./bins);
1005 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
1006 axisafter->Set(bins, newbins);
void SetPeriodEnum(TString periodName)
TParticle * GetMCParticle(AliStack *fMCStack)
virtual Double_t GetPhotonPhi() const
Int_t GetMCLabelPositive() const
TH2F * hPositronNSigmadEdxEta
void SetLogBinningXTH2(TH2 *histoRebin)
TH2F * hPositronNSigmaTOFP
Double_t GetArmenterosAlpha() const
Int_t GetSignalRejection()
Int_t GetFirstTPCRow(Double_t radius)
TH2F * hPositronNSigmaITSP
void SetMCLabelNegative(Int_t label)
TH2F * hPositronNSigmadEdxP
Bool_t AreAODsRelabeled()
PeriodVar GetPeriodEnum()
void SetPeriodEnumExplicit(PeriodVar periodEnum)
Bool_t IsConversionPrimaryAOD(AliVEvent *fInputEvent, AliAODMCParticle *AODMCParticle, Double_t prodVtxX, Double_t prodVtxY, Double_t prodVtxZ)
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *MCEvent)
void DoEtaShift(Bool_t doEtaShift)
Float_t GetPsiPair() const
Double_t GetConversionZ() const
TH2F * hElectronNSigmadEdxEta
TH2F * hElectronNSigmaITSP
Int_t GetNumberOfContributorsVtx(AliVEvent *event)
Bool_t IsConversionPrimaryESD(AliStack *MCStack, Long_t stackpos, Double_t prodVtxX, Double_t prodVtxY, Double_t prodVtxZ)
TH2F * hElectronNSigmaTOFP
TH2F * hPositronNSigmaPiondEdxP
TH1F * hElecNfindableClsTPC
TH1F * hPosiNfindableClsTPC
Bool_t GetProduceV0FindingEfficiency()
AliConversionPhotonCuts * fConversionCuts
Float_t GetChi2perNDF() const
Double_t GetArmenterosQt() const
TClonesArray * fConversionGammas
virtual void UserExec(Option_t *option)
TVectorF fGammaPhotonProp
void SetMCLabelPositive(Int_t label)
Int_t GetTrackLabelNegative() const
AliV0ReaderV1 * fV0Reader
Int_t GetTrackLabelPositive() const
UInt_t IsTruePhotonESD(AliAODConversionPhoton *TruePhotonCandidate)
void RelabelAODPhotonCandidates(Bool_t mode)
AliConversionPhotonCuts * GetConversionCuts()
TH1I * hNContributorsVertex
Int_t IsEventAcceptedByCut(AliConvEventCuts *ReaderCuts, AliVEvent *InputEvent, AliMCEvent *MCEvent, Int_t isHeavyIon, Bool_t isEMCALAnalysis)
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TParticle * GetPositiveMCDaughter(AliStack *fMCStack)
virtual ~AliAnalysisTaskConversionQA()
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)
TH1F * hGammaCosinePointingAngle
void GetCorrectEtaShiftFromPeriod()
Int_t GetMCLabelNegative() const
Double_t GetConversionY() const
UInt_t IsTruePhotonAOD(AliAODConversionPhoton *TruePhotonCandidate)
AliAnalysisTaskConversionQA()
Int_t IsParticleFromBGEvent(Int_t index, AliStack *MCStack, AliVEvent *InputEvent=0x0)
Cut functions.
AliConvEventCuts * fEventCuts
void SetLabelPositive(Int_t label)
Track labels.
void SetLabelNegative(Int_t label)
TClonesArray * GetReconstructedGammas() const
AliVTrack * GetTrack(AliVEvent *event, Int_t label)
virtual Double_t GetPhotonPt() const
TList * GetAcceptedHeader()
Class handling all kinds of selection cuts for Gamma Conversion analysis.
virtual void Terminate(Option_t *)
AliConvEventCuts * GetEventCuts()
TParticle * GetNegativeMCDaughter(AliStack *fMCStack)
void ProcessQATree(AliAODConversionPhoton *gamma)
void ProcessQA(AliAODConversionPhoton *gamma)
virtual void UserCreateOutputObjects()
TH2F * hElectronNSigmadEdxP
ClassImp(AliAnalysisTaskConversionQA) AliAnalysisTaskConversionQA
Double_t GetCosineOfPointingAngle(const AliConversionPhotonBase *photon, AliVEvent *event) const
Double_t GetConversionRadius() const
void RelabelAODs(Bool_t relabel=kTRUE)
Double_t GetConversionX() const
Bool_t PhotonIsSelected(AliConversionPhotonBase *photon, AliVEvent *event)
TList * GetV0FindingEfficiencyHistograms()
TList * GetCutHistograms()
TH2F * hElectronNSigmaPiondEdxP