28 #include "THnSparse.h"
31 #include "AliAnalysisTask.h"
32 #include "AliAnalysisManager.h"
33 #include "AliESDEvent.h"
34 #include "AliESDInputHandler.h"
35 #include "AliMCEventHandler.h"
36 #include "AliMCEvent.h"
37 #include "AliMCParticle.h"
38 #include "AliCentrality.h"
39 #include "AliESDVZERO.h"
40 #include "AliESDpid.h"
42 #include "AliVParticle.h"
43 #include "AliESDtrack.h"
44 #include "AliESDtrackCuts.h"
45 #include "AliKFVertex.h"
47 #include "AliGenCocktailEventHeader.h"
49 #include "AliAODMCParticle.h"
50 #include "AliAODMCHeader.h"
51 #include "AliEventplane.h"
69 fV0ReaderName("V0ReaderV1"),
82 fHeaderNameList(NULL),
85 fGammaCandidates(NULL),
89 fConversionCuts(NULL),
92 hESDConvGammaPt(NULL),
97 hdPhidRcandidates(NULL),
98 hdPhidRcandidates_MCsigsig(NULL),
99 hdPhidRcandidates_MCbkgsig(NULL),
100 hdPhidRcandidates_MCbkgbkg(NULL),
102 hKappaTPC_after(NULL),
103 hKappaTPC_Temp0(NULL),
104 hKappaTPC_Temp1(NULL),
105 hKappaTPC_Temp2(NULL),
106 hKappaTPC_Temp3(NULL),
107 hKappaTPC_Temp4(NULL),
108 hKappaTPC_Temp5(NULL),
109 hKappaTPC_Temp6(NULL),
110 hKappaTPC_Temp7(NULL),
111 hKappaTPC_Temp8(NULL),
112 hKappaTPC_Temp9(NULL),
113 hKappaTPC_Temp10(NULL),
114 hESDConvGammaR(NULL),
115 hESDConvGammaEta(NULL),
123 hESDMotherInvMassPt(NULL),
125 hESDMotherBackInvMassPt(NULL),
127 hESDMotherInvMassEalpha(NULL),
128 hESDMotherPi0PtY(NULL),
129 hESDMotherEtaPtY(NULL),
130 hESDMotherPi0PtAlpha(NULL),
131 hESDMotherEtaPtAlpha(NULL),
132 hESDMotherPi0PtOpenAngle(NULL),
133 hESDMotherEtaPtOpenAngle(NULL),
136 hNGoodESDTracks(NULL),
137 hNGammaCandidates(NULL),
138 hNGoodESDTracksVsNGammaCanditates(NULL),
141 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
148 fEventPlaneAngle(-100),
150 fnGammaCandidates(0),
161 fMoveParticleAccordingToVertex(kTRUE),
163 fDoMesonAnalysis(kTRUE),
166 fIsFromMBHeader(kTRUE),
176 fPerformExtraStudies(0),
192 fV0ReaderName(
"V0ReaderV1"),
200 fPhotonDCAList(NULL),
204 fHeaderNameList(NULL),
207 fGammaCandidates(NULL),
208 fEventCutArray(NULL),
211 fConversionCuts(NULL),
212 fMesonCutArray(NULL),
214 hESDConvGammaPt(NULL),
219 hdPhidRcandidates(NULL),
220 hdPhidRcandidates_MCsigsig(NULL),
221 hdPhidRcandidates_MCbkgsig(NULL),
222 hdPhidRcandidates_MCbkgbkg(NULL),
224 hKappaTPC_after(NULL),
225 hKappaTPC_Temp0(NULL),
226 hKappaTPC_Temp1(NULL),
227 hKappaTPC_Temp2(NULL),
228 hKappaTPC_Temp3(NULL),
229 hKappaTPC_Temp4(NULL),
230 hKappaTPC_Temp5(NULL),
231 hKappaTPC_Temp6(NULL),
232 hKappaTPC_Temp7(NULL),
233 hKappaTPC_Temp8(NULL),
234 hKappaTPC_Temp9(NULL),
235 hKappaTPC_Temp10(NULL),
236 hESDConvGammaR(NULL),
237 hESDConvGammaEta(NULL),
245 hESDMotherInvMassPt(NULL),
247 hESDMotherBackInvMassPt(NULL),
249 hESDMotherInvMassEalpha(NULL),
250 hESDMotherPi0PtY(NULL),
251 hESDMotherEtaPtY(NULL),
252 hESDMotherPi0PtAlpha(NULL),
253 hESDMotherEtaPtAlpha(NULL),
254 hESDMotherPi0PtOpenAngle(NULL),
255 hESDMotherEtaPtOpenAngle(NULL),
257 hNGoodESDTracks(NULL),
258 hNGammaCandidates(NULL),
259 hNGoodESDTracksVsNGammaCanditates(NULL),
262 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
269 fEventPlaneAngle(-100),
271 fnGammaCandidates(0),
282 fMoveParticleAccordingToVertex(kTRUE),
284 fDoMesonAnalysis(kTRUE),
287 fIsFromMBHeader(kTRUE),
297 fPerformExtraStudies(0),
307 DefineOutput(1, TList::Class());
308 DefineOutput(2, AliFlowEventSimple::Class());
309 DefineOutput(3, AliFlowEventSimple::Class());
310 DefineOutput(4, AliFlowEventSimple::Class());
311 DefineOutput(5, AliFlowEventSimple::Class());
312 DefineOutput(6, AliFlowEventSimple::Class());
321 fV0ReaderName(
"V0ReaderV1"),
329 fPhotonDCAList(NULL),
333 fHeaderNameList(NULL),
336 fGammaCandidates(NULL),
337 fEventCutArray(NULL),
340 fConversionCuts(NULL),
341 fMesonCutArray(NULL),
343 hESDConvGammaPt(NULL),
348 hdPhidRcandidates(NULL),
349 hdPhidRcandidates_MCsigsig(NULL),
350 hdPhidRcandidates_MCbkgsig(NULL),
351 hdPhidRcandidates_MCbkgbkg(NULL),
353 hKappaTPC_after(NULL),
354 hKappaTPC_Temp0(NULL),
355 hKappaTPC_Temp1(NULL),
356 hKappaTPC_Temp2(NULL),
357 hKappaTPC_Temp3(NULL),
358 hKappaTPC_Temp4(NULL),
359 hKappaTPC_Temp5(NULL),
360 hKappaTPC_Temp6(NULL),
361 hKappaTPC_Temp7(NULL),
362 hKappaTPC_Temp8(NULL),
363 hKappaTPC_Temp9(NULL),
364 hKappaTPC_Temp10(NULL),
365 hESDConvGammaR(NULL),
366 hESDConvGammaEta(NULL),
374 hESDMotherInvMassPt(NULL),
376 hESDMotherBackInvMassPt(NULL),
378 hESDMotherInvMassEalpha(NULL),
379 hESDMotherPi0PtY(NULL),
380 hESDMotherEtaPtY(NULL),
381 hESDMotherPi0PtAlpha(NULL),
382 hESDMotherEtaPtAlpha(NULL),
383 hESDMotherPi0PtOpenAngle(NULL),
384 hESDMotherEtaPtOpenAngle(NULL),
386 hNGoodESDTracks(NULL),
387 hNGammaCandidates(NULL),
388 hNGoodESDTracksVsNGammaCanditates(NULL),
391 tESDMesonsInvMassPtDcazMinDcazMaxFlag(NULL),
398 fEventPlaneAngle(-100),
400 fnGammaCandidates(0),
411 fMoveParticleAccordingToVertex(kTRUE),
413 fDoMesonAnalysis(kTRUE),
416 fIsFromMBHeader(kTRUE),
426 fPerformExtraStudies(0),
436 DefineOutput(1, TList::Class());
437 for (
Int_t i = 0; i<nCuts; i++){
438 DefineOutput(2+i, AliFlowEventSimple::Class());
574 TString cutstringMeson =
"NoMesonCut";
578 fCutFolder[iCut]->SetName(Form(
"Cut Number %s_%s",cutstringEvent.Data() ,cutstringPhoton.Data()));
582 fESDList[iCut]->SetName(Form(
"%s_%s ESD histograms",cutstringEvent.Data() ,cutstringPhoton.Data()));
586 hNEvents[iCut] =
new TH1I(
"NEvents",
"NEvents",13,-0.5,12.5);
587 hNEvents[iCut]->GetXaxis()->SetBinLabel(1,
"Accepted");
588 hNEvents[iCut]->GetXaxis()->SetBinLabel(2,
"Centrality");
589 hNEvents[iCut]->GetXaxis()->SetBinLabel(3,
"Missing MC");
591 TString TriggerNames =
"Not Trigger: ";
593 hNEvents[iCut]->GetXaxis()->SetBinLabel(4,TriggerNames.Data());
595 hNEvents[iCut]->GetXaxis()->SetBinLabel(4,
"Trigger");
597 hNEvents[iCut]->GetXaxis()->SetBinLabel(5,
"Vertex Z");
598 hNEvents[iCut]->GetXaxis()->SetBinLabel(6,
"Cont. Vertex");
599 hNEvents[iCut]->GetXaxis()->SetBinLabel(7,
"Pile-Up");
600 hNEvents[iCut]->GetXaxis()->SetBinLabel(8,
"no SDD");
601 hNEvents[iCut]->GetXaxis()->SetBinLabel(9,
"no V0AND");
602 hNEvents[iCut]->GetXaxis()->SetBinLabel(10,
"EMCAL problem");
603 hNEvents[iCut]->GetXaxis()->SetBinLabel(12,
"SPD hits vs tracklet");
604 hNEvents[iCut]->GetXaxis()->SetBinLabel(13,
"Out-of-Bunch pileup Past-Future");
623 else hNV0Tracks[iCut] =
new TH1I(
"V0 Multiplicity",
"V0 Multiplicity",1500,0,1500);
625 hEtaShift[iCut] =
new TProfile(
"Eta Shift",
"Eta Shift",1, -0.5,0.5);
627 hESDConvGammaPt[iCut] =
new TH1F(
"ESD_ConvGamma_Pt",
"ESD_ConvGamma_Pt",250,0,25);
630 hInvMassPair[iCut]=
new TH2F(
"InvMassPair_Pt",
"Gamma invariant mass vs Pt",200,0,0.2,250,0,25);
633 hLTMPt[iCut]=
new TH2F(
"LTM_Pt",
"LTM vs Pt",200,0,200,250,0,25);
635 hLTMPt_MC[iCut]=
new TH2F(
"LTM_Pt_MCgen",
"LTM vs Pt (MC)",200,0,200,250,0,25);
638 hPt_TruePt[iCut]=
new TH2F(
"hPt_TruePt",
"Pt vs TruePt (MC)",250,0,25,250,0,25);
651 hKappaTPC[iCut]=
new TH2F(
"KappaTPC_Pt",
"Gamma KappaTPC vs Pt",200,-20,20,250,0,25);
654 hKappaTPC_after[iCut]=
new TH2F(
"KappaTPC_Pt_after",
"Gamma KappaTPC vs Pt after cuts",200,-20,20,250,0,25);
657 hKappaTPC_Temp0[iCut]=
new TH2F(
"hKappaTPC_Temp0_ee",
"Gamma KappaTPC vs Pt Template 0",200,-20,20,250,0,25);
660 hKappaTPC_Temp1[iCut]=
new TH2F(
"hKappaTPC_Temp1_pipi",
"Gamma KappaTPC vs Pt Template 1",200,-20,20,250,0,25);
663 hKappaTPC_Temp2[iCut]=
new TH2F(
"hKappaTPC_Temp2_pie",
"Gamma KappaTPC vs Pt Template 2",200,-20,20,250,0,25);
666 hKappaTPC_Temp3[iCut]=
new TH2F(
"hKappaTPC_Temp3_piK",
"Gamma KappaTPC vs Pt Template 3",200,-20,20,250,0,25);
669 hKappaTPC_Temp4[iCut]=
new TH2F(
"hKappaTPC_Temp4_pip",
"Gamma KappaTPC vs Pt Template 4",200,-20,20,250,0,25);
672 hKappaTPC_Temp5[iCut]=
new TH2F(
"hKappaTPC_Temp5_eK",
"Gamma KappaTPC vs Pt Template 5",200,-20,20,250,0,25);
675 hKappaTPC_Temp6[iCut]=
new TH2F(
"hKappaTPC_Temp6_ep",
"Gamma KappaTPC vs Pt Template 6",200,-20,20,250,0,25);
678 hKappaTPC_Temp7[iCut]=
new TH2F(
"hKappaTPC_Temp7_KK",
"Gamma KappaTPC vs Pt Template 7",200,-20,20,250,0,25);
681 hKappaTPC_Temp8[iCut]=
new TH2F(
"hKappaTPC_Temp8_had",
"Gamma KappaTPC vs Pt Template 8",200,-20,20,250,0,25);
684 hKappaTPC_Temp9[iCut]=
new TH2F(
"hKappaTPC_Temp9_rem4",
"Gamma KappaTPC vs Pt Template 9",200,-20,20,250,0,25);
687 hKappaTPC_Temp10[iCut]=
new TH2F(
"hKappaTPC_Temp10_rem10",
"Gamma KappaTPC vs Pt Template 10",200,-20,20,250,0,25);
694 fPhotonDCAList[iCut]->SetName(Form(
"%s_%s_%s Photon DCA tree",cutstringEvent.Data(),cutstringPhoton.Data(),cutstringMeson.Data()));
710 hESDConvGammaR[iCut] =
new TH1F(
"ESD_ConvGamma_R",
"ESD_ConvGamma_R",800,0,200);
712 hESDConvGammaEta[iCut] =
new TH1F(
"ESD_ConvGamma_Eta",
"ESD_ConvGamma_Eta",2000,-2,2);
725 fMesonDCAList[iCut]->SetName(Form(
"%s_%s_%s Meson DCA tree",cutstringEvent.Data() ,cutstringPhoton.Data(),cutstringMeson.Data()));
739 hESDMotherPi0PtY[iCut] =
new TH2F(
"ESD_MotherPi0_Pt_Y",
"ESD_MotherPi0_Pt_Y",150,0.03,15.,150,-1.5,1.5);
742 hESDMotherEtaPtY[iCut] =
new TH2F(
"ESD_MotherEta_Pt_Y",
"ESD_MotherEta_Pt_Y",150,0.03,15.,150,-1.5,1.5);
771 if(!
fV0Reader){printf(
"Error: No V0 Reader");
return;}
800 fhistoEPVZ =
new TH1D(
"EPVZ",
"EPVZ", 60, -TMath::Pi()/2, TMath::Pi()/2);
838 printf(
" Gamma Conversion Task %s :: Eta Shift Manually Set to %f \n\n",
853 if(eventQuality == 2 || eventQuality == 3){
867 AliEventplane *EventPlane =
fInputEvent->GetEventplane();
878 Int_t eventNotAccepted =
881 if(eventNotAccepted){
883 hNEvents[iCut]->Fill(eventNotAccepted);
887 if(eventQuality != 0){
908 if (fIsHeavyIon == 1){
926 Int_t PhotonTemplateID;
930 if(!PhotonCandidate)
continue;
955 if(PhotonTemplateID != 0 && PhotonTemplateID != 1 && PhotonTemplateID != 2 &&
956 PhotonTemplateID != 3 && PhotonTemplateID != 4 && PhotonTemplateID != 5 &&
960 if(TRUEPhoton)
hPt_TruePt[
fiCut]->Fill(PhotonCandidate->Pt(),TRUEPhoton->Pt());
975 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
982 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
994 GammaCandidatesStepOne->Add(PhotonCandidate);
997 GammaCandidatesStepTwo->Add(PhotonCandidate);
1004 for(
Int_t i = 0;i<GammaCandidatesStepOne->GetEntries();i++){
1006 if(!PhotonCandidate)
continue;
1024 GammaCandidatesStepTwo->Add(PhotonCandidate);
1027 if (
fIsHeavyIon ==1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
1034 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
1046 for(
Int_t i = 0;i<GammaCandidatesStepTwo->GetEntries();i++){
1048 if(!PhotonCandidate)
continue;
1064 if (
fIsHeavyIon == 1 && PhotonCandidate->Pt() > 0.399 && PhotonCandidate->Pt() < 12.){
1071 }
else if ( PhotonCandidate->Pt() > 0.299 && PhotonCandidate->Pt() < 16.){
1083 delete GammaCandidatesStepOne;
1084 GammaCandidatesStepOne = 0x0;
1085 delete GammaCandidatesStepTwo;
1086 GammaCandidatesStepTwo = 0x0;
1103 TAxis *axisafter = histoRebin->GetXaxis();
1104 Int_t bins = axisafter->GetNbins();
1105 Double_t from = axisafter->GetXmin();
1106 Double_t to = axisafter->GetXmax();
1109 Double_t factor = TMath::Power(to/from, 1./bins);
1110 for(
Int_t i=1; i<=bins; ++i) newbins[i] = factor * newbins[i-1];
1111 axisafter->Set(bins, newbins);
1131 if (gammaForv2 == NULL)
return;
1155 sTrack->
SetPt(gammaForv2->Pt());
1196 for(
Int_t i = 0; i <
fMCEvent->GetNumberOfPrimaries(); i++){
1197 TParticle* gammaForLTM = (TParticle *)
fMCEvent->Particle(i);
1198 if(!gammaForLTM)
return;
1200 gamma_Eta = gammaForLTM->Eta(); gamma_Phi = gammaForLTM->Phi(); gamma_Pt = gammaForLTM->Pt();
1201 if( gamma_Eta > 0.9 || gamma_Eta < -0.9 )
continue;
1202 if(gamma_Eta==0 || gamma_Phi==0 || gamma_Pt==0)
continue;
1206 if (LTMpart == NULL)
return;
1207 LTMpart_Eta = LTMpart->Eta(); LTMpart_Phi = LTMpart->Phi(); LTMpart_Pt = LTMpart->Pt();
1208 if(LTMpart_Eta==0 || LTMpart_Phi==0 || LTMpart_Pt==0)
continue;
1209 dPhi = TMath::Abs(LTMpart_Phi-gamma_Phi);
1210 if(dPhi > TMath::Pi()) dPhi = TMath::Abs(dPhi-2.0*TMath::Pi());
1211 if(TMath::Sqrt(pow((LTMpart_Eta-gamma_Eta),2)+pow(dPhi,2))<0.2) nCloseByTracks+=1;
1220 if(!gammaForLTM)
return;
1222 if(gamma_Eta==0 || gamma_Phi==0 || gamma_Pt==0)
continue;
1226 if (LTMpart == NULL)
return;
1227 LTMpart_Eta = LTMpart->Eta(); LTMpart_Phi = LTMpart->Phi(); LTMpart_Pt = LTMpart->Pt();
1228 if(LTMpart_Eta==0 || LTMpart_Phi==0 || LTMpart_Pt==0)
continue;
1229 dPhi = TMath::Abs(LTMpart_Phi-gamma_Phi);
1230 if(dPhi > TMath::Pi()) dPhi = TMath::Abs(dPhi-2.0*TMath::Pi());
1231 if(TMath::Sqrt(pow((LTMpart_Eta-gamma_Eta),2)+pow(dPhi,2))<0.2) nCloseByTracks+=1;
1266 if(posDaughter==NULL || negDaughter==NULL)
return kFALSE;
1267 Int_t pdgCodePos = 0;
1268 Int_t pdgCodeNeg = 0;
1269 Bool_t IsItGammaSignal = kFALSE;
1271 if( (posDaughter->GetMother(0) == negDaughter->GetMother(0)) ) {
1272 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
1273 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
1274 if(pdgCodePos==11 && pdgCodeNeg==11) IsItGammaSignal = kTRUE;
1276 IsItGammaSignal = kFALSE;
1279 return IsItGammaSignal;
1288 if(posDaughter==NULL || negDaughter==NULL)
return kFALSE;
1289 Int_t pdgCodePos = 0;
1290 Int_t pdgCodeNeg = 0;
1291 Bool_t IsItElectronElectron = kFALSE;
1293 if( (posDaughter->GetMother(0) != negDaughter->GetMother(0)) || (posDaughter->GetMother(0) == negDaughter->GetMother(0) && posDaughter->GetMother(0) ==-1) ) {
1294 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
1295 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
1296 if(pdgCodePos==11 && pdgCodeNeg==11) IsItElectronElectron = kTRUE;
1298 IsItElectronElectron = kFALSE;
1301 return IsItElectronElectron;
1307 if(MCPhoton->GetPdgCode()!=22)
return kFALSE;
1308 if(MCPhoton->GetNDaughters() != 2)
return kFALSE;
1309 TParticle *posDaughter = (TParticle*)
fMCEvent->Particle(MCPhoton->GetFirstDaughter());
1310 TParticle *negDaughter = (TParticle*)
fMCEvent->Particle(MCPhoton->GetLastDaughter());
1311 if(posDaughter==NULL || negDaughter==NULL)
return kFALSE;
1312 if(posDaughter->GetUniqueID() != 5 || negDaughter->GetUniqueID() != 5)
return kFALSE;
1313 Int_t pdgCodePos = 0;
1314 Int_t pdgCodeNeg = 0;
1315 Bool_t IsItPhoton = kFALSE;
1317 if(posDaughter->GetMother(0) == negDaughter->GetMother(0)) {
1318 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
1319 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
1320 if(pdgCodePos==11 && pdgCodeNeg==11) IsItPhoton = kTRUE;
1322 IsItPhoton = kFALSE;
1334 if(posDaughter==NULL || negDaughter==NULL)
return kFALSE;
1336 Int_t pdgCodePos = 0;
1337 Int_t pdgCodeNeg = 0;
1338 Int_t TemplateID = -1;
1340 pdgCodePos=TMath::Abs(posDaughter->GetPdgCode());
1341 pdgCodeNeg=TMath::Abs(negDaughter->GetPdgCode());
1343 if(pdgCodePos==11 && pdgCodeNeg==11) TemplateID = 0;
1344 if(pdgCodePos==211 && pdgCodeNeg==211) TemplateID = 1;
1345 if((pdgCodePos==211 && pdgCodeNeg==11) || (pdgCodePos==11 && pdgCodeNeg==211)) TemplateID = 2;
1346 if((pdgCodePos==211 && pdgCodeNeg==321) || (pdgCodePos==321 && pdgCodeNeg==211)) TemplateID = 3;
1347 if((pdgCodePos==211 && pdgCodeNeg==2212) || (pdgCodePos==2212 && pdgCodeNeg==211))TemplateID = 4;
1348 if((pdgCodePos==11 && pdgCodeNeg==321) || (pdgCodePos==321 && pdgCodeNeg==11)) TemplateID = 5;
1349 if((pdgCodePos==11 && pdgCodeNeg==2212) || (pdgCodePos==2212 && pdgCodeNeg==11)) TemplateID = 6;
1350 if(pdgCodePos==321 && pdgCodeNeg==321) TemplateID = 7;
1351 if(pdgCodePos!=11 && pdgCodeNeg!=11 && TemplateID == -1) TemplateID = 8;
1372 if(gamma1_Eta==0 || gamma1_Phi==0 || gamma1_Pt==0)
continue;
1376 if(!gamma2)
continue;
1378 if(gamma2_Eta==0 || gamma2_Phi==0 || gamma2_Pt==0)
continue;
1380 dPhi = TMath::Abs(gamma2_Phi-gamma1_Phi);
1381 if(dPhi > TMath::Pi()) dPhi = TMath::Abs(dPhi-2.0*TMath::Pi());
1382 dRconvVtx = TMath::Sqrt(pow(gamma2_Vtx_x-gamma1_Vtx_x,2)+pow(gamma2_Vtx_y-gamma1_Vtx_y,2)+pow(gamma2_Vtx_z-gamma1_Vtx_z,2));
1406 if(!gamma)
return -1;
1408 if(gamma1_Eta==0 || gamma1_Phi==0 || gamma1_Pt==0)
return -1;
1411 if(i==PhotonID)
continue;
1413 if(!gamma2)
continue;
1415 if(gamma2_Eta==0 || gamma2_Phi==0 || gamma2_Pt==0)
continue;
1417 dPhi = TMath::Abs(gamma2_Phi-gamma1_Phi);
1418 if(dPhi > TMath::Pi()) dPhi = TMath::Abs(dPhi-2.0*TMath::Pi());
1419 dRconvVtx = TMath::Sqrt(pow(gamma2_Vtx_x-gamma1_Vtx_x,2)+pow(gamma2_Vtx_y-gamma1_Vtx_y,2)+pow(gamma2_Vtx_z-gamma1_Vtx_z,2));
1420 if(dPhi < 0.04 && dRconvVtx < 7.5)
return 1;
void SetMassMin(Double_t i)
TParticle * GetMCParticle(AliMCEvent *mcEvent)
virtual Double_t GetPhotonPhi() const
virtual void UserExec(Option_t *)
TH2F ** hESDMotherBackInvMassPt
void SetEta(Double_t eta)
TH2F ** hNGoodESDTracksVsNGammaCanditates
AliAnalysisTaskGammaConvFlow()
Bool_t MCElectronElectron(AliAODConversionPhoton *MCPhoton)
flow events Inclusive e
AliGammaConversionAODBGHandler ** fBGHandler
TH2F ** hESDMotherPi0PtOpenAngle
TH2F ** hdPhidRcandidates_MCbkgbkg
TH2F ** hESDMotherEtaPtOpenAngle
Bool_t MCConversionPhotonCheck(TParticle *MCPhoton)
Int_t GetNumberOfPrimaryTracks()
void SetNbinsPhi(Int_t i)
void SetPhiMin(Double_t i)
TH2F ** hdPhidRcandidates_MCbkgsig
Double_t GetConversionZ() const
void ProcessPhotonCandidatesforV2()
Float_t GetDCAzToPrimVtx() const
void SetLogBinningXTH2(TH2 *histoRebin)
void SetMass(Double_t mass)
TParticle * GetPositiveMCDaughter(AliMCEvent *mcEvent)
void SetEtaMax(Double_t i)
void SetParamType(trackParameterType paramType)
Double_t fEventPlaneAngle
void SetReferenceMultiplicity(Int_t m)
TH2F ** hESDMotherInvMassPt
Bool_t fPerformExtraStudies
AliV0ReaderV1 * fV0Reader
UShort_t T(UShort_t m, UShort_t t)
void ProcessPhotonCandidates()
ClassImp(AliAnalysisTaskGammaConvFlow) AliAnalysisTaskGammaConvFlow
TTree ** tESDMesonsInvMassPtDcazMinDcazMaxFlag
void SetForRPSelection(Bool_t b=kTRUE)
TParticle * GetNegativeMCDaughter(AliMCEvent *mcEvent)
void SetPtRange(Float_t r1, Float_t r2)
void Fill(AliFlowTrackCuts *rpCuts, AliFlowTrackCuts *poiCuts)
AliConversionAODBGHandlerRP ** fBGHandlerRP
virtual void UserCreateOutputObjects()
TH2F ** hESDMotherPi0PtAlpha
virtual ~AliAnalysisTaskGammaConvFlow()
void AddEvent(TList *const eventGammas, Double_t xvalue, Double_t yvalue, Double_t zvalue, Int_t multiplicity, Double_t epvalue=-100)
void SetNbinsEta(Int_t i)
TH1I ** hNGammaCandidates
void SetNumberOfPOIs(Int_t nubmerOfPOIs, Int_t poiType=1)
AliConversionPhotonCuts * GetConversionCuts()
virtual void Terminate(const Option_t *)
void SetNbinsMult(Int_t i)
void SetMassMax(Double_t i)
static AliFlowCommonConstants * GetMaster()
TH2F ** hdPhidRcandidates_MCsigsig
void SetNbinsMass(Int_t i)
Class handling all kinds of selection cuts for Gamma Conversion analysis.
TH2F ** hESDMotherInvMassEalpha
virtual Double_t GetPhotonEta() const
void UpdateEventByEventData()
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)
void SetPhi(Double_t phi)
void DefineDeadZone(Double_t etaMin, Double_t etaMax, Double_t phiMin, Double_t phiMax)
void SetMultMax(Double_t i)
Double_t GetConversionY() const
void SetPtMax(Double_t i)
void SetEvent(AliVEvent *event, AliMCEvent *mcEvent=NULL)
UChar_t GetPhotonQuality() const
Bool_t MCGammaSignal(AliAODConversionPhoton *MCPhoton)
void GetdPhidRtoCandidate()
TH2F ** hESDMotherEtaPtAlpha
Class handling all kinds of selection cuts for Gamma Conversion analysis.
void SetPhiMax(Double_t i)
void SetEtaMin(Double_t i)
void PrepareFlowEvent(Int_t iMulti, AliFlowEvent *FlowEv) const
AliFlowTrackCuts * fNullCuts
TClonesArray * GetReconstructedGammas() const
void SetForPOISelection(Bool_t b=kTRUE)
virtual Double_t GetPhotonPt() const
AliFlowTrackCuts * fCutsRP
enable debug mode
Class handling all kinds of selection cuts for Gamma Conversion analysis.
AliConvEventCuts * GetEventCuts()
AliFlowEvent ** fFlowEvent
void SetMultMin(Double_t i)
TH2F ** hdPhidRcandidates
void SetPtMin(Double_t i)
void ProcessPhotonCandidatesforLTM()
TClonesArray * fReaderGammas
void InsertTrack(AliFlowTrack *)
Int_t GetTemplateID(AliAODConversionPhoton *MCPhoton)
Double_t GetConversionRadius() const
Double_t GetConversionX() const
void SetEtaRange(Float_t r1, Float_t r2)