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),
53 ffillHistograms(kFALSE),
58 hNGoodESDTracks(NULL),
60 hNContributorsVertex(NULL),
67 hGammaChi2perNDF(NULL),
69 hGammaArmenteros(NULL),
70 hGammaCosinePointingAngle(NULL),
75 hElecNfindableClsTPC(NULL),
76 hPosiNfindableClsTPC(NULL),
80 hElectronITSdEdxP(NULL),
82 hElectronNSigmadEdxP(NULL),
83 hElectronNSigmadEdxEta(NULL),
84 hElectronNSigmaPiondEdxP(NULL),
85 hElectronNSigmaITSP(NULL),
86 hElectronNSigmaTOFP(NULL),
88 hPositronITSdEdxP(NULL),
90 hPositronNSigmadEdxP(NULL),
91 hPositronNSigmadEdxEta(NULL),
92 hPositronNSigmaPiondEdxP(NULL),
93 hPositronNSigmaITSP(NULL),
94 hPositronNSigmaTOFP(NULL),
125 fnGammaCandidates(1),
134 fV0ReaderName(
"V0ReaderV1"),
135 fConversionGammas(NULL),
136 fConversionCuts(NULL),
139 fNumberOfESDTracks(0),
144 ffillHistograms(kFALSE),
149 hNGoodESDTracks(NULL),
151 hNContributorsVertex(NULL),
152 hITSClusterPhi(NULL),
158 hGammaChi2perNDF(NULL),
160 hGammaArmenteros(NULL),
161 hGammaCosinePointingAngle(NULL),
166 hElecNfindableClsTPC(NULL),
167 hPosiNfindableClsTPC(NULL),
170 hElectrondEdxP(NULL),
171 hElectronITSdEdxP(NULL),
173 hElectronNSigmadEdxP(NULL),
174 hElectronNSigmadEdxEta(NULL),
175 hElectronNSigmaPiondEdxP(NULL),
176 hElectronNSigmaITSP(NULL),
177 hElectronNSigmaTOFP(NULL),
178 hPositrondEdxP(NULL),
179 hPositronITSdEdxP(NULL),
181 hPositronNSigmadEdxP(NULL),
182 hPositronNSigmadEdxEta(NULL),
183 hPositronNSigmaPiondEdxP(NULL),
184 hPositronNSigmaITSP(NULL),
185 hPositronNSigmaTOFP(NULL),
218 fnGammaCandidates(1),
224 DefineInput(0, TChain::Class());
225 DefineOutput(1, TList::Class());
254 hVertexZ =
new TH1F(
"Vertex_Z",
"Vertex_Z",300,-15,15);
262 else hNV0Tracks =
new TH1I(
"V0 Multiplicity",
"V0 Multiplicity",2000,0,2000);
267 hGammaPt =
new TH1F(
"Gamma_Pt",
"Gamma_Pt",250,0,25);
269 hGammaPhi =
new TH1F(
"Gamma_Phi",
"Gamma_Phi",360,0,2*TMath::Pi());
271 hGammaPhi_Pos =
new TH1F(
"GammaPhi_EtaPos",
"GammaPhi_EtaPos",360,0,2*TMath::Pi());
273 hGammaPhi_Neg =
new TH1F(
"GammaPhi_EtaNeg",
"GammaPhi_EtaNeg",360,0,2*TMath::Pi());
276 hGammaEta =
new TH1F(
"Gamma_Eta",
"Gamma_Eta",600,-1.5,1.5);
278 hGammaChi2perNDF =
new TH1F(
"Gamma_Chi2perNDF",
"Gamma_Chi2perNDF",500,0,100);
280 hGammaPsiPair =
new TH1F(
"Gamma_PsiPair",
"Gamma_PsiPair",500,0,2);
289 hElecPt =
new TH2F(
"Electron_Positron_Pt",
"Electron_Positron_Pt",250,0,25,250,0,25);
291 hElecEta =
new TH2F(
"Electron_Positron_Eta",
"Electron_Positron_Eta",600,-1.5,1.5,600,-1.5,1.5);
293 hElecPhi =
new TH2F(
"Electron_Positron_Phi",
"Electron_Positron_Phi",360,0,2*TMath::Pi(),360,0,2*TMath::Pi());
295 hElecClsTPC =
new TH1F(
"Electron_ClusterTPC",
"Electron_ClusterTPC",200,0,200);
297 hPosiClsTPC =
new TH1F(
"Positron_ClusterTPC",
"Positron_ClusterTPC",200,0,200);
300 hElecNfindableClsTPC =
new TH1F(
"Electron_findableClusterTPC",
"Electron_findableClusterTPC",100,0,1);
302 hPosiNfindableClsTPC =
new TH1F(
"Positron_findableClusterTPC",
"Positron_findableClusterTPC",100,0,1);
305 hElectrondEdxP =
new TH2F(
"Electron_dEdx_P",
"Electron_dEdx_P",100, 0.05, 20, 200, 0, 200);
308 hPositrondEdxP =
new TH2F(
"Positron_dEdx_P",
"Positron_dEdx_P",100, 0.05, 20, 200, 0, 200);
328 hElectronTOFP =
new TH2F(
"Electron_TOF_P",
"Electron_TOF_P",100, 0.05, 20, 600, -1000, 29000);
331 hPositronTOFP =
new TH2F(
"Positron_TOF_P",
"Positron_TOF_P",100, 0.05, 20, 600, -1000, 29000);
354 hInvMassPair =
new TH2F(
"Gamma_InvMassPair_Pt",
"Gamma invariant mass vs Pt",200,0,0.2,250,0,25);
467 printf(
" Gamma Conversion QA Task %s :: Eta Shift Manually Set to %f \n\n",
478 if(eventQuality != 0){
484 Int_t eventNotAccepted =
486 if(eventNotAccepted)
return;
521 if (gamma==NULL)
continue;
549 AliVEvent*
event = (AliVEvent*) InputEvent();
574 if(!negTrack||!posTrack)
return;
590 fDaughterProp(3) = pidResonse->NumberOfSigmasTPC(posTrack,AliPID::kElectron);
591 fDaughterProp(22) = pidResonse->NumberOfSigmasTPC(posTrack,AliPID::kPion);
593 fDaughterProp(10) = pidResonse->NumberOfSigmasTPC(negTrack,AliPID::kElectron);
594 fDaughterProp(23) = pidResonse->NumberOfSigmasTPC(negTrack,AliPID::kPion);
595 Int_t nPosClusterITS = 0;
596 Int_t nNegClusterITS = 0;
597 for(
Int_t itsLayer = 0; itsLayer<6;itsLayer++){
598 if(TESTBIT(negTrack->GetITSClusterMap(),itsLayer)){
601 if(TESTBIT(posTrack->GetITSClusterMap(),itsLayer)){
609 if (nPosClusterITS > 0 ){
611 fDaughterProp(20) = pidResonse->NumberOfSigmasITS(posTrack,AliPID::kElectron);
616 if (nNegClusterITS > 0 ){
618 fDaughterProp(21) = pidResonse->NumberOfSigmasITS(negTrack,AliPID::kElectron);
625 if((posTrack->GetStatus() & AliESDtrack::kTOFpid) && !(posTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
626 Double_t t0pos = pidResonse->GetTOFResponse().GetStartTime(posTrack->P());
628 posTrack->GetIntegratedTimes(timesPos,9);
629 Double_t TOFsignalPos = posTrack->GetTOFsignal();
630 Double_t dTpos = TOFsignalPos - t0pos - timesPos[0];
632 fDaughterProp(5) = pidResonse->NumberOfSigmasTOF(posTrack, AliPID::kElectron);
637 if((negTrack->GetStatus() & AliESDtrack::kTOFpid) && !(negTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
638 Double_t t0neg = pidResonse->GetTOFResponse().GetStartTime(negTrack->P());
640 negTrack->GetIntegratedTimes(timesNeg,9);
641 Double_t TOFsignalNeg = negTrack->GetTOFsignal();
642 Double_t dTneg = TOFsignalNeg - t0neg - timesNeg[0];
644 fDaughterProp(12) = pidResonse->NumberOfSigmasTOF(negTrack, AliPID::kElectron);
683 if(!negTrack||!posTrack)
return;
686 hElecPt->Fill(negTrack->Pt(),posTrack->Pt());
687 hElecEta->Fill(negTrack->Eta(),posTrack->Eta());
688 hElecPhi->Fill(negTrack->Phi(),posTrack->Phi());
696 hElectronNSigmadEdxP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasTPC(negTrack, AliPID::kElectron));
697 hElectronNSigmadEdxEta->Fill(negTrack->Eta() ,pidResonse->NumberOfSigmasTPC(negTrack, AliPID::kElectron));
700 hPositronNSigmadEdxP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasTPC(posTrack, AliPID::kElectron));
701 hPositronNSigmadEdxEta->Fill(posTrack->Eta() ,pidResonse->NumberOfSigmasTPC(posTrack, AliPID::kElectron));
705 if((negTrack->GetStatus() & AliESDtrack::kTOFpid)==0 && !(negTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
706 Double_t t0neg = pidResonse->GetTOFResponse().GetStartTime(negTrack->P());
708 negTrack->GetIntegratedTimes(timesNeg,9);
709 Double_t TOFsignalNeg = negTrack->GetTOFsignal();
710 Double_t dTneg = TOFsignalNeg - t0neg - timesNeg[0];
712 hElectronNSigmaTOFP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasTOF(negTrack, AliPID::kElectron));
714 if((posTrack->GetStatus() & AliESDtrack::kTOFpid)==0 && !(posTrack->GetStatus() & AliESDtrack::kTOFmismatch)){
715 Double_t t0pos = pidResonse->GetTOFResponse().GetStartTime(posTrack->P());
717 posTrack->GetIntegratedTimes(timesPos,9);
718 Double_t TOFsignalPos = posTrack->GetTOFsignal();
719 Double_t dTpos = TOFsignalPos - t0pos - timesPos[0];
721 hPositronNSigmaTOFP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasTOF(posTrack, AliPID::kElectron));
724 Int_t nPosClusterITS = 0;
725 Int_t nNegClusterITS = 0;
726 for(
Int_t itsLayer = 0; itsLayer<6;itsLayer++){
727 if(TESTBIT(negTrack->GetITSClusterMap(),itsLayer)){
730 if(TESTBIT(posTrack->GetITSClusterMap(),itsLayer)){
734 Double_t negtrackPhi = negTrack->Phi();
735 Double_t postrackPhi = posTrack->Phi();
740 if (nPosClusterITS > 0 ){
742 hPositronNSigmaITSP->Fill(posTrack->P() ,pidResonse->NumberOfSigmasITS(posTrack,AliPID::kElectron));
744 if (nNegClusterITS > 0 ){
746 hElectronNSigmaITSP->Fill(negTrack->P() ,pidResonse->NumberOfSigmasITS(negTrack,AliPID::kElectron));
758 Bool_t selectPrimaries=kTRUE;
759 AliESDtrackCuts *EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(selectPrimaries);
760 EsdTrackCuts->SetMaxDCAToVertexZ(2);
761 EsdTrackCuts->SetEtaRange(-0.8, 0.8);
762 EsdTrackCuts->SetPtRange(0.15);
764 for(
Int_t iTracks = 0; iTracks <
fInputEvent->GetNumberOfTracks(); iTracks++){
765 AliESDtrack* curTrack = (AliESDtrack*)
fInputEvent->GetTrack(iTracks);
766 if(!curTrack)
continue;
774 for(
Int_t iTracks = 0; iTracks<
fInputEvent->GetNumberOfTracks(); iTracks++){
775 AliAODTrack* curTrack = (AliAODTrack*)
fInputEvent->GetTrack(iTracks);
776 if(curTrack->GetID()<0)
continue;
777 if(!curTrack->IsHybridGlobalConstrainedGlobal())
continue;
778 if(TMath::Abs(curTrack->Eta())>0.8)
continue;
779 if(curTrack->Pt()<0.15)
continue;
791 Int_t motherLabelPhoton;
792 Int_t pdgCodePos = 0;
793 Int_t pdgCodeNeg = 0;
796 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
797 Double_t mcProdVtxX = primVtxMC->GetX();
798 Double_t mcProdVtxY = primVtxMC->GetY();
799 Double_t mcProdVtxZ = primVtxMC->GetZ();
802 if(posDaughter == NULL || negDaughter == NULL) {
806 }
else if( posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)) {
809 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
810 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
811 if(pdgCodePos==11 && pdgCodeNeg==11)
return 10;
812 if(pdgCodePos==11 && pdgCodeNeg==11 &&
813 (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1))
return 15;
815 if(pdgCodePos==211 && pdgCodeNeg==211) kind = 11;
816 if((pdgCodePos==211 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==211)) kind = 12;
817 if((pdgCodePos==11 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==11)) kind = 16;
818 if((pdgCodePos==11 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==11)) kind = 17;
819 if((pdgCodePos==211 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==211)) kind = 18;
820 if((pdgCodePos==211 && pdgCodeNeg==11) ||(pdgCodePos==11 && pdgCodeNeg==211)) kind = 13;
821 if(pdgCodePos==321 && pdgCodeNeg==321) kind = 14;
824 pdgCodePos=posDaughter->GetPdgCode();
825 pdgCodeNeg=negDaughter->GetPdgCode();
826 motherLabelPhoton= Photon->GetMother(0);
830 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11)
return 2;
831 else if ( !(pdgCodeNeg==pdgCodePos)){
832 if(pdgCode == 111)
return 3;
833 else if (pdgCode == 221)
return 4;
834 else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
835 if(pdgCode == 22 && gammaIsPrimary){
837 }
else if (pdgCode == 22){
852 TClonesArray *AODMCTrackArray =
dynamic_cast<TClonesArray*
>(
fInputEvent->FindListObject(AliAODMCParticle::StdBranchName()));
853 if (AODMCTrackArray!=NULL && TruePhotonCandidate!=NULL){
854 AliAODMCParticle *posDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelPositive());
855 AliAODMCParticle *negDaughter = (AliAODMCParticle*) AODMCTrackArray->At(TruePhotonCandidate->
GetMCLabelNegative());
856 Int_t pdgCodePos = 0;
857 Int_t pdgCodeNeg = 0;
859 if(posDaughter == NULL || negDaughter == NULL) {
861 }
else if( posDaughter->GetMother() != negDaughter->GetMother() || (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1)) {
863 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
864 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
865 if(pdgCodePos==11 && pdgCodeNeg==11) kind = 10;
866 if(pdgCodePos==11 && pdgCodeNeg==11 &&
867 (posDaughter->GetMother() == negDaughter->GetMother() && posDaughter->GetMother() ==-1))kind = 15;
869 if(pdgCodePos==211 && pdgCodeNeg==211) kind = 11;
870 if((pdgCodePos==211 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==211)) kind = 12;
871 if((pdgCodePos==11 && pdgCodeNeg==2212) ||(pdgCodePos==2212 && pdgCodeNeg==11)) kind = 16;
872 if((pdgCodePos==11 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==11)) kind = 17;
873 if((pdgCodePos==211 && pdgCodeNeg==321) ||(pdgCodePos==321 && pdgCodeNeg==211)) kind = 18;
874 if((pdgCodePos==211 && pdgCodeNeg==11) ||(pdgCodePos==11 && pdgCodeNeg==211)) kind = 13;
875 if(pdgCodePos==321 && pdgCodeNeg==321) kind = 14;
877 AliAODMCParticle *Photon = (AliAODMCParticle*) AODMCTrackArray->At(posDaughter->GetMother());
878 pdgCodePos=posDaughter->GetPdgCode();
879 pdgCodeNeg=negDaughter->GetPdgCode();
881 if ( Photon->GetPdgCode())
882 pdgCode = Photon->GetPdgCode();
883 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11) kind = 2;
884 else if ( !(pdgCodeNeg==pdgCodePos)){
885 if(pdgCode == 111) kind = 3;
886 else if (pdgCode == 221) kind = 4;
887 else if (!(negDaughter->GetMCProcessCode() != 5 || posDaughter->GetMCProcessCode() !=5)){
888 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
889 Double_t mcProdVtxX = primVtxMC->GetX();
890 Double_t mcProdVtxY = primVtxMC->GetY();
891 Double_t mcProdVtxZ = primVtxMC->GetZ();
894 if(pdgCode == 22 && isPrimary){
896 }
else if (pdgCode == 22){
922 if(!PhotonCandidate)
continue;
932 Bool_t AODLabelPos = kFALSE;
933 Bool_t AODLabelNeg = kFALSE;
936 AliAODTrack *tempDaughter =
static_cast<AliAODTrack*
>(
fInputEvent->GetTrack(i));
949 if(AODLabelNeg && AODLabelPos){
953 if(!AODLabelPos || !AODLabelNeg){
955 AliAODTrack *tempDaughter =
static_cast<AliAODTrack*
>(
fInputEvent->GetTrack(i));
956 if(tempDaughter->GetID()<0){
970 if(AODLabelNeg && AODLabelPos){
974 if(!AODLabelPos || !AODLabelNeg){
975 cout<<
"WARNING!!! AOD TRACKS NOT FOUND FOR"<<endl;
995 TAxis *axisafter = histoRebin->GetXaxis();
996 Int_t bins = axisafter->GetNbins();
997 Double_t from = axisafter->GetXmin();
1001 Double_t factor = TMath::Power(to/from, 1./bins);
1002 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
1003 axisafter->Set(bins, newbins);
TParticle * GetMCParticle(AliMCEvent *mcEvent)
void SetPeriodEnum(TString periodName)
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)
void DoEtaShift(Bool_t doEtaShift)
Float_t GetPsiPair() const
Double_t GetConversionZ() const
TH2F * hElectronNSigmadEdxEta
TH2F * hElectronNSigmaITSP
TParticle * GetPositiveMCDaughter(AliMCEvent *mcEvent)
Int_t GetNumberOfContributorsVtx(AliVEvent *event)
TH2F * hElectronNSigmaTOFP
TH2F * hPositronNSigmaPiondEdxP
TH1F * hElecNfindableClsTPC
TH1F * hPosiNfindableClsTPC
Bool_t GetProduceV0FindingEfficiency()
TParticle * GetNegativeMCDaughter(AliMCEvent *mcEvent)
AliConversionPhotonCuts * fConversionCuts
Float_t GetChi2perNDF() const
void GetNotRejectedParticles(Int_t rejection, TList *HeaderList, AliVEvent *event)
Double_t GetArmenterosQt() const
TClonesArray * fConversionGammas
Int_t IsEventAcceptedByCut(AliConvEventCuts *ReaderCuts, AliVEvent *event, AliMCEvent *mcEvent, Int_t isHeavyIon, Bool_t isEMCALAnalysis)
virtual void UserExec(Option_t *option)
TVectorF fGammaPhotonProp
void SetMCLabelPositive(Int_t label)
Int_t GetTrackLabelNegative() const
AliV0ReaderV1 * fV0Reader
Bool_t IsConversionPrimaryESD(AliMCEvent *mcEvent, Long_t eventpos, Double_t prodVtxX, Double_t prodVtxY, Double_t prodVtxZ)
Int_t GetTrackLabelPositive() const
UInt_t IsTruePhotonESD(AliAODConversionPhoton *TruePhotonCandidate)
void RelabelAODPhotonCandidates(Bool_t mode)
AliConversionPhotonCuts * GetConversionCuts()
TH1I * hNContributorsVertex
Class handling all kinds of selection cuts for Gamma Conversion analysis.
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()
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()
void ProcessQATree(AliAODConversionPhoton *gamma)
Bool_t IsConversionPrimaryAOD(AliVEvent *event, AliAODMCParticle *AODMCParticle, Double_t prodVtxX, Double_t prodVtxY, Double_t prodVtxZ)
void ProcessQA(AliAODConversionPhoton *gamma)
Int_t IsParticleFromBGEvent(Int_t index, AliMCEvent *mcEvent, AliVEvent *event=0x0)
Cut functions.
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