24 #include "AliAnalysisManager.h" 25 #include "TParticle.h" 27 #include "AliPIDResponse.h" 28 #include "AliESDtrackCuts.h" 39 fV0ReaderName("V0ReaderV1"),
40 fConversionGammas(NULL),
41 fGammaCandidates(NULL),
42 fConversionCutArray(NULL),
50 fAllMCGammaList(NULL),
51 fAllMCConvGammaList(NULL),
55 fNESDtracksEta0814(0),
60 fGammaMCConvTheta(0.),
75 hNGoodESDTracksEta08(NULL),
76 hNGoodESDTracksWeightedEta08(NULL),
77 hNGoodESDTracksEta14(NULL),
78 hNGoodESDTracksEta08_14(NULL),
79 hESDConversionRPhi(NULL),
80 hESDConversionRZ(NULL),
81 hESDConversionRPt(NULL),
82 hESDConversionWOWeightRPt(NULL),
83 hESDConversionREta(NULL),
84 hESDConversionDCA(NULL),
85 hESDConversionPsiPair(NULL),
86 hESDConversionChi2(NULL),
87 hESDConversionMass(NULL),
88 hESDConversionRRejSmall(NULL),
89 hESDConversionRRejLarge(NULL),
90 hESDConversionAsymP(NULL),
92 hElectronRNSigmadEdx(NULL),
94 hPositronRNSigmadEdx(NULL),
95 hMCConversionRPhi(NULL),
96 hMCConversionRPt(NULL),
97 hMCConversionWOWeightRPt(NULL),
98 hMCConversionREta(NULL),
99 hMCConversionRRejSmall(NULL),
100 hMCConversionRRejLarge(NULL),
102 hMCAllGammaWOWeightPt(NULL),
103 hMCAllSecondaryGammaPt(NULL),
104 hMCSecondaryConvGammaPtR(NULL),
105 hMCTrueConversionRPhi(NULL),
106 hMCTrueConversionRZ(NULL),
107 hMCTrueConversionRPt(NULL),
108 hMCTrueConversionWOWeightRPt(NULL),
109 hMCTrueConversionRPtMCRPt(NULL),
110 hMCTrueConversionWOWeightRPtMCRPt(NULL),
111 hMCTrueConversionREta(NULL),
112 hMCTrueConversionDCA(NULL),
113 hMCTrueConversionPsiPair(NULL),
114 hMCTrueConversionChi2(NULL),
115 hMCTrueConversionMass(NULL),
116 hMCTrueConversionAsymP(NULL),
117 hMCTrueConversionRRejSmall(NULL),
118 hMCTrueConversionRRejLarge(NULL),
119 hMCTruePrimConversionRPt(NULL),
120 hMCTruePrimConversionWOWeightRPt(NULL),
121 hMCTrueSecConversionRPt(NULL),
122 hMCTrueSecondaryConvGammaRPt(NULL),
123 hMCTrueSecondaryConvGammaMCRPt(NULL),
124 hMCTruePi0DalConversionRPt(NULL),
125 hMCTruePi0DalConversionEta(NULL),
126 hMCTrueEtaDalConversionRPt(NULL),
127 hMCTrueEtaDalConversionEta(NULL),
128 hMCTrueCombinatorialConversionRPt(NULL),
129 hMCTrueCombinatorialConversionEta(NULL),
130 hPositrondEdxMapsR0(NULL),
131 hElectrondEdxMapsR0(NULL),
132 hPositrondEdxMapsR1(NULL),
133 hElectrondEdxMapsR1(NULL),
134 hPositrondEdxMapsR2(NULL),
135 hElectrondEdxMapsR2(NULL),
136 hPositrondEdxMapsR3(NULL),
137 hElectrondEdxMapsR3(NULL)
146 fV0ReaderName(
"V0ReaderV1"),
147 fConversionGammas(NULL),
148 fGammaCandidates(NULL),
149 fConversionCutArray(NULL),
150 fEventCutArray(NULL),
157 fAllMCGammaList(NULL),
158 fAllMCConvGammaList(NULL),
162 fNESDtracksEta0814(0),
167 fGammaMCConvTheta(0.),
182 hNGoodESDTracksEta08(NULL),
183 hNGoodESDTracksWeightedEta08(NULL),
184 hNGoodESDTracksEta14(NULL),
185 hNGoodESDTracksEta08_14(NULL),
186 hESDConversionRPhi(NULL),
187 hESDConversionRZ(NULL),
188 hESDConversionRPt(NULL),
189 hESDConversionWOWeightRPt(NULL),
190 hESDConversionREta(NULL),
191 hESDConversionDCA(NULL),
192 hESDConversionPsiPair(NULL),
193 hESDConversionChi2(NULL),
194 hESDConversionMass(NULL),
195 hESDConversionRRejSmall(NULL),
196 hESDConversionRRejLarge(NULL),
197 hESDConversionAsymP(NULL),
198 hElectronRdEdx(NULL),
199 hElectronRNSigmadEdx(NULL),
200 hPositronRdEdx(NULL),
201 hPositronRNSigmadEdx(NULL),
202 hMCConversionRPhi(NULL),
203 hMCConversionRPt(NULL),
204 hMCConversionWOWeightRPt(NULL),
205 hMCConversionREta(NULL),
206 hMCConversionRRejSmall(NULL),
207 hMCConversionRRejLarge(NULL),
209 hMCAllSecondaryGammaPt(NULL),
210 hMCSecondaryConvGammaPtR(NULL),
211 hMCTrueConversionRPhi(NULL),
212 hMCTrueConversionRZ(NULL),
213 hMCTrueConversionRPt(NULL),
214 hMCTrueConversionWOWeightRPt(NULL),
215 hMCTrueConversionRPtMCRPt(NULL),
216 hMCTrueConversionWOWeightRPtMCRPt(NULL),
217 hMCTrueConversionREta(NULL),
218 hMCTrueConversionDCA(NULL),
219 hMCTrueConversionPsiPair(NULL),
220 hMCTrueConversionChi2(NULL),
221 hMCTrueConversionMass(NULL),
222 hMCTrueConversionAsymP(NULL),
223 hMCTrueConversionRRejSmall(NULL),
224 hMCTrueConversionRRejLarge(NULL),
225 hMCTruePrimConversionRPt(NULL),
226 hMCTruePrimConversionWOWeightRPt(NULL),
227 hMCTrueSecConversionRPt(NULL),
228 hMCTrueSecondaryConvGammaRPt(NULL),
229 hMCTrueSecondaryConvGammaMCRPt(NULL),
230 hMCTruePi0DalConversionRPt(NULL),
231 hMCTruePi0DalConversionEta(NULL),
232 hMCTrueEtaDalConversionRPt(NULL),
233 hMCTrueEtaDalConversionEta(NULL),
234 hMCTrueCombinatorialConversionRPt(NULL),
235 hMCTrueCombinatorialConversionEta(NULL),
236 hPositrondEdxMapsR0(NULL),
237 hElectrondEdxMapsR0(NULL),
238 hPositrondEdxMapsR1(NULL),
239 hElectrondEdxMapsR1(NULL),
240 hPositrondEdxMapsR2(NULL),
241 hElectrondEdxMapsR2(NULL),
242 hPositrondEdxMapsR3(NULL),
243 hElectrondEdxMapsR3(NULL)
247 DefineInput(0, TChain::Class());
248 DefineOutput(1, TList::Class());
372 fCutFolder[iCut]->SetName(Form(
"Cut Number %s_%s",cutstringEvent.Data() ,cutstringPhoton.Data()));
377 fESDList[iCut]->SetName(Form(
"%s_%s ESD histograms",cutstringEvent.Data() ,cutstringPhoton.Data()));
389 hNEvents[iCut] =
new TH1F(
"NEvents",
"NEvents",14,-0.5,13.5);
390 hNEvents[iCut]->GetXaxis()->SetBinLabel(1,
"Accepted");
391 hNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
392 hNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Miss. MC or inc. ev.");
394 TString TriggerNames =
"Not Trigger: ";
396 hNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
398 hNEvents[iCut]->GetXaxis()->SetBinLabel(4,
"Trigger");
400 hNEvents[iCut]->GetXaxis()->SetBinLabel(5,
"Vertex Z");
401 hNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
402 hNEvents[iCut]->GetXaxis()->SetBinLabel(7,
"Pile-Up");
403 hNEvents[iCut]->GetXaxis()->SetBinLabel(8,
"no SDD");
404 hNEvents[iCut]->GetXaxis()->SetBinLabel(9,
"no V0AND");
405 hNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problem");
406 hNEvents[iCut]->GetXaxis()->SetBinLabel(11,
"rejectedForJetJetMC");
407 hNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
408 hNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
409 hNEvents[iCut]->GetXaxis()->SetBinLabel(14,
"Pileup V0M-TPCout Tracks");
413 hNGoodESDTracksEta08[iCut] =
new TH1F(
"GoodESDTracksEta08",
"GoodESDTracksEta08",4000,-0.5,4000-0.5);
421 hNGoodESDTracksEta14[iCut] =
new TH1F(
"GoodESDTracksEta14",
"GoodESDTracksEta14",4000,-0.5,4000-0.5);
426 hESDConversionRPhi[iCut] =
new TH2F(
"ESD_Conversion_RPhi",
"ESD_Conversion_RPhi",nBinsPhi,0.,2*TMath::Pi(),nBinsR,0.,200.);
428 hESDConversionREta[iCut] =
new TH2F(
"ESD_Conversion_REta",
"ESD_Conversion_REta",nBinsEta,-2.,2.,nBinsR,0.,200.);
431 hESDConversionRPt[iCut] =
new TH2F(
"ESD_Conversion_RPt",
"ESD_Conversion_RPt",nBinsPt,0.,20.,nBinsR,0.,200.);
438 hESDConversionRZ[iCut] =
new TH2F(
"ESD_Conversion_RZ",
"ESD_Conversion_RZ",nBinsZ,-180.,180.,nBinsR,0.,200.);
441 hElectronRdEdx[iCut] =
new TH2F(
"Electron_RdEdx",
"Electron_RdEdx",200,0.,200.,nBinsR,0.,200.);
445 hPositronRdEdx[iCut] =
new TH2F(
"Positron_RdEdx",
"Positron_RdEdx",200,0.,200.,nBinsR,0.,200.);
450 hESDConversionDCA[iCut] =
new TH1F(
"ESD_Conversion_DCA",
"ESD_Conversion_DCA",400,0.,5.);
454 hESDConversionChi2[iCut] =
new TH1F(
"ESD_Conversion_Chi2",
"ESD_Conversion_Chi2",400,0.,50.);
456 hESDConversionMass[iCut] =
new TH1F(
"ESD_Conversion_Mass",
"ESD_Conversion_Mass",400,0.,1.);
464 hESDConversionAsymP[iCut] =
new TH2F(
"ESD_ConversionMapping_AsymP",
"ESD_ConversionMapping_AsymP",nBinsPt,0.01,20.,500,0.,1.);
467 Int_t bins = AxisAfter->GetNbins();
468 Double_t from = AxisAfter->GetXmin();
472 Double_t factor = TMath::Power(to/from, 1./bins);
473 for(
Int_t i=1; i<=bins; ++i) newBins[i] = factor * newBins[i-1];
474 AxisAfter->Set(bins, newBins);
487 fMCList[iCut]->SetName(Form(
"%s_%s MC histograms",cutstringEvent.Data() ,cutstringPhoton.Data()));
488 fMCList[iCut]->SetOwner(kTRUE);
492 fTrueList[iCut]->SetName(Form(
"%s_%s True histograms",cutstringEvent.Data() ,cutstringPhoton.Data()));
496 hMCAllGammaPt[iCut] =
new TH1F(
"MC_AllGamma_Pt",
"MC_AllGamma_Pt",nBinsPt,0.,20.);
498 hMCAllGammaWOWeightPt[iCut] =
new TH1F(
"MC_AllGammaWOWeight_Pt",
"MC_AllGammaWOWeight_Pt",nBinsPt,0.,20.);
501 hMCAllSecondaryGammaPt[iCut] =
new TH2F(
"MC_AllSecondaryGamma_Pt",
"MC_AllSecondaryGamma_Pt", nBinsPt, 0., 20., 4, -0.5, 3.5);
508 hMCSecondaryConvGammaPtR[iCut] =
new TH3F(
"MC_SecondaryConvGamma_PtR",
"MC_SecondaryConvGamma_PtR", nBinsPt, 0., 20., nBinsR,0.,200.,4, -0.5, 3.5);
516 hMCConversionRPhi[iCut] =
new TH2F(
"MC_Conversion_RPhi",
"MC_Conversion_RPhi",nBinsPhi,0.,2*TMath::Pi(),nBinsR,0.,200.);
518 hMCConversionREta[iCut] =
new TH2F(
"MC_Conversion_REta",
"MC_Conversion_REta",nBinsEta,-2.,2.,nBinsR,0.,200.);
520 hMCConversionRPt[iCut] =
new TH2F(
"MC_Conversion_RPt",
"MC_Conversion_RPt",nBinsPt,0.,20.,nBinsR,0.,200.);
534 hMCTrueConversionRPhi[iCut] =
new TH2F(
"ESD_TrueConversion_RPhi",
"ESD_TrueConversion_RPhi",nBinsPhi,0.,2*TMath::Pi(),nBinsR,0.,200.);
536 hMCTrueConversionREta[iCut] =
new TH2F(
"ESD_TrueConversion_REta",
"ESD_TrueConversion_REta",nBinsEta,-2.,2.,nBinsR,0.,200.);
538 hMCTrueConversionRPt[iCut] =
new TH2F(
"ESD_TrueConversion_RPt",
"ESD_TrueConversion_RPt",nBinsPt,0.,20.,nBinsR,0.,200.);
546 hMCTrueConversionRZ[iCut] =
new TH2F(
"ESD_TrueConversion_RZ",
"ESD_TrueConversion_RZ",nBinsZ,-180.,180.,nBinsR,0.,200.);
549 hMCTrueConversionDCA[iCut] =
new TH1F(
"ESD_TrueConversion_DCA",
"ESD_TrueConversion_DCA",400,0.,5.);
553 hMCTrueConversionChi2[iCut] =
new TH1F(
"ESD_TrueConversion_Chi2",
"ESD_TrueConversion_Chi2",400,0.,50.);
555 hMCTrueConversionMass[iCut] =
new TH1F(
"ESD_TrueConversion_Mass",
"ESD_TrueConversion_Mass",400,0.,1.);
572 hMCTrueSecondaryConvGammaRPt[iCut] =
new TH3F(
"ESD_TrueSecondaryConvGamma_Pt",
"ESD_TrueSecondaryConvGamma_Pt", nBinsPt,0.,20.,nBinsR,0.,200. , 4, -0.5, 3.5);
578 hMCTrueSecondaryConvGammaMCRPt[iCut] =
new TH3F(
"ESD_TrueSecondaryConvGamma_MCPt",
"ESD_TrueSecondaryConvGamma_MCPt", nBinsPt, 0.,20.,nBinsR,0.,200., 4, -0.5, 3.5);
603 hMCTrueConversionAsymP[iCut] =
new TH2F(
"ESD_TrueConversionMapping_AsymP",
"ESD_TrueConversionMapping_AsymP",nBinsPt,0.01,20.,500,0.,1.);
607 AxisAfter->Set(bins, newBins);
625 Int_t nSigmaDeDxBins=100;
627 for(
Int_t i=0;i<nPBins+1;i++){
629 arrPBinning[i]= 0.05;
630 }
else if(i>0 && i<11){
631 arrPBinning[i]= 0.1*i;
635 arrPBinning[i]= 10.0;
640 for(
Int_t i=0;i<nEtaBins+1;i++){
641 arrEtaBinning[i]= -1.+0.1*i;
645 for(
Int_t i=0;i<nSigmaDeDxBins+1;i++){
646 arrSigmaDeDxBinning[i]= -5.+0.1*i;
652 fDeDxMapList[iCut] ->SetName(Form(
"%s_%s dEdx Maps",cutstringEvent.Data() ,cutstringPhoton.Data()));
656 hElectrondEdxMapsR0[iCut]=
new TH3F(
"R0 electron sigma dEdx P Eta",
"R0 electron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
657 hPositrondEdxMapsR0[iCut]=
new TH3F(
"R0 positron sigma dEdx P Eta",
"R0 positron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
661 hElectrondEdxMapsR1[iCut]=
new TH3F(
"R1 electron sigma dEdx P Eta",
"R1 electron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
662 hPositrondEdxMapsR1[iCut]=
new TH3F(
"R1 positron sigma dEdx P Eta",
"R1 positron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
666 hElectrondEdxMapsR2[iCut]=
new TH3F(
"R2 electron sigma dEdx P Eta",
"R2 electron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
667 hPositrondEdxMapsR2[iCut]=
new TH3F(
"R2 positron sigma dEdx P Eta",
"R2 positron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
671 hElectrondEdxMapsR3[iCut]=
new TH3F(
"R3 electron sigma dEdx P Eta",
"R3 electron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
672 hPositrondEdxMapsR3[iCut]=
new TH3F(
"R3 positron sigma dEdx P Eta",
"R3 positron sigma dEdx P Eta", nSigmaDeDxBins, arrSigmaDeDxBinning, nEtaBins,arrEtaBinning, nPBins, arrPBinning);
734 if(
fInputEvent->IsIncompleteDAQ()==kTRUE) eventQuality = 2;
736 if(eventQuality == 2 || eventQuality == 3){
750 if(eventNotAccepted){
752 hNEvents[iCut]->Fill(eventNotAccepted);
756 if(eventQuality != 0){
799 if(
fInputEvent->GetPrimaryVertexTracks()->GetNContributors()>0) {
819 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
820 Double_t mcProdVtxX = primVtxMC->GetX();
821 Double_t mcProdVtxY = primVtxMC->GetY();
822 Double_t mcProdVtxZ = primVtxMC->GetZ();
828 for(Long_t i = 0; i <
fMCEvent->GetNumberOfTracks(); i++) {
833 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
834 if (!particle)
continue;
840 if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1))
continue;
844 if (particle->Pt()>0.005){
855 TParticle* daughter1 = (TParticle *)
fMCEvent->Particle(particle->GetFirstDaughter());
868 TParticle* particle = (TParticle *)
fMCEvent->Particle(i);
869 if (!particle)
continue;
871 Int_t isMCFromMBHeader = -1;
876 if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1))
continue;
879 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
880 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
882 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
884 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
895 TParticle* tmpDaughter1 = (TParticle *)
fMCEvent->Particle(particle->GetFirstDaughter());
896 if (particle->GetMother(0) > -1 &&
fMCEvent->Particle(particle->GetMother(0))->GetMother(0) > -1) {
897 if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
899 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
901 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(particle->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
927 if (gamma == NULL)
continue;
934 GammaCandidatesStepTwo->Add(gamma);
939 for(
Int_t i = 0;i<GammaCandidatesStepTwo->GetEntries();i++){
941 if(!PhotonCandidate)
continue;
949 if (gamma==NULL)
continue;
970 Charge = negTrack->Charge();
972 Eta = negTrack->Eta();
975 Charge = posTrack->Charge();
977 Eta = posTrack->Eta();
992 if(negTrack->GetTPCsignal()){
996 if(posTrack->GetTPCsignal()){
1001 if(negTrack->GetTPCsignal()){
1005 if(posTrack->GetTPCsignal()){
1018 AliESDv0 *v0 = esdEvent->GetV0(gamma->
GetV0Index());
1026 if(gamma->
GetPhotonP()!=0 && negTrack->P()!=0) {
1066 Int_t pdgCodePos = 0.;
1067 Int_t pdgCodeNeg = 0.;
1071 const AliVVertex* primVtxMC =
fMCEvent->GetPrimaryVertex();
1072 Double_t mcProdVtxX = primVtxMC->GetX();
1073 Double_t mcProdVtxY = primVtxMC->GetY();
1074 Double_t mcProdVtxZ = primVtxMC->GetZ();
1084 if( (isNegFromMBHeader < 1) || (isPosFromMBHeader < 1))
continue;
1087 if(posDaughter == NULL || negDaughter == NULL){
1091 }
else if(posDaughter->GetMother(0) != negDaughter->GetMother(0) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1)){
1094 pdgCodePos = posDaughter->GetPdgCode();
1095 pdgCodeNeg = negDaughter->GetPdgCode();
1097 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11)
1099 if(TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==11 && (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1))
1101 if(TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==211)
1103 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==2212) ||
1104 (TMath::Abs(pdgCodePos)==2212 && TMath::Abs(pdgCodeNeg)==211))
1106 if((TMath::Abs(pdgCodePos)==211 && TMath::Abs(pdgCodeNeg)==11) ||
1107 (TMath::Abs(pdgCodePos)==11 && TMath::Abs(pdgCodeNeg)==211))
1109 if (TMath::Abs(pdgCodePos)==321 || TMath::Abs(pdgCodeNeg)==321)
1114 pdgCodePos = posDaughter->GetPdgCode();
1115 pdgCodeNeg = negDaughter->GetPdgCode();
1118 if(TMath::Abs(pdgCodePos)!=11 || TMath::Abs(pdgCodeNeg)!=11){
1121 }
else if ( !(pdgCodeNeg==pdgCodePos)){
1123 if(pdgCode == 111) {
1126 }
else if (pdgCode == 221){
1129 }
else if (!(negDaughter->GetUniqueID() != 5 || posDaughter->GetUniqueID() !=5)){
1130 if(pdgCode == 22 && gammaIsPrimary){
1132 }
else if (pdgCode == 22){
1136 if( Photon->GetMother(0) > -1 &&
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0) > -1){
1137 if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 310){
1141 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 130) {
1145 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 3122) {
1149 }
else if (
fMCEvent->Particle(
fMCEvent->Particle(Photon->GetMother(0))->GetMother(0))->GetPdgCode() == 221) {
1196 if(gamma->
GetPhotonP()!=0 && negTrack->P()!=0) {
1207 AliESDv0 *v0 = esdEvent->GetV0(gamma->
GetV0Index());
1212 }
else if(
fKind==3){
1215 }
else if(
fKind==4){
1225 delete GammaCandidatesStepTwo;
1226 GammaCandidatesStepTwo = 0x0;
1234 Int_t fNumberOfESDTracks = 0;
1239 static AliESDtrackCuts *EsdTrackCuts = 0x0;
1240 static int prevRun = -1;
1243 if (prevRun!=runNumber) {
1244 delete EsdTrackCuts;
1246 prevRun = runNumber;
1249 if (!EsdTrackCuts) {
1251 if( (runNumber<=146860) || (runNumber>=197470 && runNumber<=197692) || (runNumber>=172440 && runNumber<=193766) ){
1252 EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
1254 }
else if (runNumber>=209122){
1257 EsdTrackCuts =
new AliESDtrackCuts();
1259 EsdTrackCuts->AliESDtrackCuts::SetMinNCrossedRowsTPC(70);
1260 EsdTrackCuts->AliESDtrackCuts::SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
1261 EsdTrackCuts->SetCutGeoNcrNcl(2., 130., 1.5, 0.0, 0.0);
1263 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterTPC(4);
1264 EsdTrackCuts->AliESDtrackCuts::SetAcceptKinkDaughters(kFALSE);
1265 EsdTrackCuts->AliESDtrackCuts::SetRequireTPCRefit(kTRUE);
1267 EsdTrackCuts->AliESDtrackCuts::SetRequireITSRefit(kTRUE);
1268 EsdTrackCuts->AliESDtrackCuts::SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1269 AliESDtrackCuts::kAny);
1270 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexXYPtDep(
"0.0105+0.0350/pt^1.1");
1271 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2TPCConstrainedGlobal(36);
1272 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexZ(2);
1273 EsdTrackCuts->AliESDtrackCuts::SetDCAToVertex2D(kFALSE);
1274 EsdTrackCuts->AliESDtrackCuts::SetRequireSigmaToVertex(kFALSE);
1275 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterITS(36);
1278 EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
1280 EsdTrackCuts->SetMaxDCAToVertexZ(2);
1281 EsdTrackCuts->SetEtaRange(-0.8, 0.8);
1282 EsdTrackCuts->SetPtRange(0.15);
1285 for(
Int_t iTracks = 0; iTracks <
fInputEvent->GetNumberOfTracks(); iTracks++){
1286 AliESDtrack* curTrack = (AliESDtrack*)
fInputEvent->GetTrack(iTracks);
1287 if(!curTrack)
continue;
1288 if(EsdTrackCuts->AcceptTrack(curTrack) ){
1292 if( (isFromMBHeader < 1) )
continue;
1295 fNumberOfESDTracks++;
1298 delete EsdTrackCuts;
1303 return fNumberOfESDTracks;
1310 Int_t fNumberOfESDTracks = 0;
1315 static AliESDtrackCuts *EsdTrackCuts = 0x0;
1316 static int prevRun = -1;
1319 if (prevRun!=runNumber) {
1320 delete EsdTrackCuts;
1322 prevRun = runNumber;
1325 if (!EsdTrackCuts) {
1327 if( (runNumber<=146860) || (runNumber>=197470 && runNumber<=197692) || (runNumber>=172440 && runNumber<=193766) ){
1328 EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010();
1330 }
else if (runNumber>=209122){
1333 EsdTrackCuts =
new AliESDtrackCuts();
1335 EsdTrackCuts->AliESDtrackCuts::SetMinNCrossedRowsTPC(70);
1336 EsdTrackCuts->AliESDtrackCuts::SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
1337 EsdTrackCuts->SetCutGeoNcrNcl(2., 130., 1.5, 0.0, 0.0);
1339 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterTPC(4);
1340 EsdTrackCuts->AliESDtrackCuts::SetAcceptKinkDaughters(kFALSE);
1341 EsdTrackCuts->AliESDtrackCuts::SetRequireTPCRefit(kTRUE);
1343 EsdTrackCuts->AliESDtrackCuts::SetRequireITSRefit(kTRUE);
1344 EsdTrackCuts->AliESDtrackCuts::SetClusterRequirementITS(AliESDtrackCuts::kSPD,
1345 AliESDtrackCuts::kAny);
1346 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexXYPtDep(
"0.0105+0.0350/pt^1.1");
1347 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2TPCConstrainedGlobal(36);
1348 EsdTrackCuts->AliESDtrackCuts::SetMaxDCAToVertexZ(2);
1349 EsdTrackCuts->AliESDtrackCuts::SetDCAToVertex2D(kFALSE);
1350 EsdTrackCuts->AliESDtrackCuts::SetRequireSigmaToVertex(kFALSE);
1351 EsdTrackCuts->AliESDtrackCuts::SetMaxChi2PerClusterITS(36);
1354 EsdTrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011();
1356 EsdTrackCuts->SetMaxDCAToVertexZ(2);
1357 EsdTrackCuts->SetPtRange(0.15);
1360 EsdTrackCuts->SetEtaRange(0.8, 1.4);
1361 for(
Int_t iTracks = 0; iTracks <
fInputEvent->GetNumberOfTracks(); iTracks++){
1362 AliESDtrack* curTrack = (AliESDtrack*)
fInputEvent->GetTrack(iTracks);
1363 if(!curTrack)
continue;
1364 if(EsdTrackCuts->AcceptTrack(curTrack) ){
1368 if( (isFromMBHeader < 1) )
continue;
1371 fNumberOfESDTracks++;
1375 EsdTrackCuts->SetEtaRange(-1.4, -0.8);
1376 for(
Int_t iTracks = 0; iTracks <
fInputEvent->GetNumberOfTracks(); iTracks++){
1377 AliESDtrack* curTrack =(AliESDtrack*)
fInputEvent->GetTrack(iTracks);
1378 if(!curTrack)
continue;
1379 if(EsdTrackCuts->AcceptTrack(curTrack) ){
1383 if( (isFromMBHeader < 1) )
continue;
1386 fNumberOfESDTracks++;
1389 delete EsdTrackCuts;
1394 return fNumberOfESDTracks;
1400 TAxis *axisafter = histoRebin->GetXaxis();
1401 Int_t bins = axisafter->GetNbins();
1402 Double_t from = axisafter->GetXmin();
1403 Double_t to = axisafter->GetXmax();
1406 Double_t factor = TMath::Power(to/from, 1./bins);
1407 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
1408 axisafter->Set(bins, newbins);
TH3F ** hPositrondEdxMapsR2
TParticle * GetMCParticle(AliMCEvent *mcEvent)
TH1F ** hMCTrueConversionMass
virtual Double_t GetPhotonPhi() const
Int_t GetMCLabelPositive() const
AliV0ReaderV1 * fV0Reader
TH3F ** hPositrondEdxMapsR0
TH3F ** hElectrondEdxMapsR3
TList * fConversionCutArray
TH2F ** hMCTrueConversionWOWeightRPt
virtual void UserCreateOutputObjects()
TH3F ** hPositrondEdxMapsR3
TH2F ** hMCConversionREta
TH3F ** hMCTrueSecondaryConvGammaMCRPt
TH2F ** hESDConversionWOWeightRPt
TH2F ** hESDConversionRPt
TH1F ** hNGoodESDTracksWeightedEta08
AliAnalysisTaskMaterialHistos()
TH2F ** hMCTrueConversionRZ
TH2F ** hMCConversionRPhi
Float_t GetPsiPair() const
virtual Double_t GetPhotonTheta() const
Double_t GetConversionZ() const
TH2F ** hMCTruePi0DalConversionRPt
TH2F ** hMCTrueConversionRPhi
TH2F ** hPositronRNSigmadEdx
TParticle * GetPositiveMCDaughter(AliMCEvent *mcEvent)
virtual void UserExec(Option_t *option)
TH1F ** hNGoodESDTracksEta08_14
TH2F ** hESDConversionREta
TH2F ** hMCTruePrimConversionWOWeightRPt
TH1F ** hESDConversionChi2
Bool_t GetProduceV0FindingEfficiency()
TParticle * GetNegativeMCDaughter(AliMCEvent *mcEvent)
TH1F ** hMCConversionRRejLarge
Float_t GetChi2perNDF() const
virtual Double_t GetPhotonP() const
TH3F ** hElectrondEdxMapsR1
TH1F ** hESDConversionMass
Int_t GetTrackLabelNegative() const
TH1F ** hNGoodESDTracksEta08
TH1F ** hMCAllGammaWOWeightPt
TH2F ** hMCConversionWOWeightRPt
Int_t GetTrackLabelPositive() const
TH1F ** hNGoodESDTracksEta14
TH1F ** hMCTrueConversionRRejSmall
AliConversionPhotonCuts * GetConversionCuts()
TH2F ** hMCAllSecondaryGammaPt
TH2F ** hMCTrueConversionRPtMCRPt
TH3F ** hMCSecondaryConvGammaPtR
TH2F ** hESDConversionRPhi
TH1F ** hMCTrueConversionRRejLarge
Class handling all kinds of selection cuts for Gamma Conversion analysis.
virtual void Terminate(Option_t *)
TH2F ** hMCTrueConversionREta
TH1F ** hMCTrueEtaDalConversionEta
TH1F ** hESDConversionRRejSmall
virtual Double_t GetPhotonEta() const
TH3F ** hMCTrueSecondaryConvGammaRPt
TH3F ** hElectrondEdxMapsR0
Int_t GetMCLabelNegative() const
TH1F ** hMCConversionRRejSmall
TH1F ** hMCTrueConversionPsiPair
TH3F ** hElectrondEdxMapsR2
TH1F ** hMCTrueConversionDCA
virtual ~AliAnalysisTaskMaterialHistos()
TH1F ** hESDConversionDCA
TH1F ** hMCTruePi0DalConversionEta
TH2F ** hMCTruePrimConversionRPt
TH1F ** hESDConversionRRejLarge
TH1F ** hMCTrueConversionChi2
TClonesArray * GetReconstructedGammas() const
TH2F ** hMCTrueSecConversionRPt
virtual Double_t GetPhotonPt() const
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH1F ** hMCTrueCombinatorialConversionEta
TH2F ** hElectronRNSigmadEdx
TH2F ** hMCTrueCombinatorialConversionRPt
TH2F ** hMCTrueConversionAsymP
AliConvEventCuts * GetEventCuts()
virtual void SetLogBinningXTH2(TH2 *histoRebin)
TH3F ** hPositrondEdxMapsR1
TH2F ** hMCTrueConversionRPt
TH2F ** hMCTrueConversionWOWeightRPtMCRPt
TClonesArray * fConversionGammas
TH2F ** hMCTrueEtaDalConversionRPt
Double_t GetConversionRadius() const
TH2F ** hESDConversionAsymP
TList * GetV0FindingEfficiencyHistograms()
TH1F ** hESDConversionPsiPair