19 #include <TClonesArray.h>
20 #include <TObjString.h>
21 #include "TParticle.h"
22 #include "TDatabasePDG.h"
31 #include "AliVCluster.h"
32 #include "AliAODMCParticle.h"
43 fRemoveConvertedPair(kFALSE),
44 fAddConvertedPairsToAOD(kFALSE),
45 fFillClusterConvDistHisto(kFALSE),
46 fMassCut(0), fMassCutTight(0),
47 fConvAsymCut(1.), fConvDEtaCut(2.),
48 fConvDPhiMinCut(-1.), fConvDPhiMaxCut(7.),
49 fMomentum(), fProdVertex(),
52 fhConvDeltaEta(0), fhConvDeltaPhi(0), fhConvDeltaEtaPhi(0),
53 fhConvAsym(0), fhConvPt(0),
54 fhConvDistEta(0), fhConvDistPhi(0), fhConvDistEn(0), fhConvDistMass(0),
55 fhConvDistEtaCutEta(0), fhConvDistPhiCutEta(0), fhConvDistEnCutEta(0), fhConvDistMassCutEta(0),
56 fhConvDistEtaCutMass(0), fhConvDistPhiCutMass(0), fhConvDistEnCutMass(0),
57 fhConvDistEtaCutAsy(0), fhConvDistPhiCutAsy(0), fhConvDistEnCutAsy(0), fhConvDistMassCutAsy(0),
58 fhConvDistEtaCutAll(0), fhConvDistPhiCutAll(0), fhConvDistEnCutAll(0),
61 fhPtConversionTagged(0), fhPtAntiNeutronTagged(0),
62 fhPtAntiProtonTagged(0), fhPtUnknownTagged(0),
64 fhConvDeltaEtaMCConversion(0), fhConvDeltaPhiMCConversion(0), fhConvDeltaEtaPhiMCConversion(0),
65 fhConvAsymMCConversion(0), fhConvPtMCConversion(0),
67 fhConvM02MCConversion(0),
69 fhConvDeltaEtaMCAntiNeutron(0), fhConvDeltaPhiMCAntiNeutron(0), fhConvDeltaEtaPhiMCAntiNeutron(0),
70 fhConvAsymMCAntiNeutron(0), fhConvPtMCAntiNeutron(0),
72 fhConvM02MCAntiNeutron(0),
73 fhConvDeltaEtaMCAntiProton(0), fhConvDeltaPhiMCAntiProton(0), fhConvDeltaEtaPhiMCAntiProton(0),
74 fhConvAsymMCAntiProton(0), fhConvPtMCAntiProton(0),
76 fhConvM02MCAntiProton(0),
77 fhConvDeltaEtaMCString(0), fhConvDeltaPhiMCString(0), fhConvDeltaEtaPhiMCString(0),
78 fhConvAsymMCString(0), fhConvPtMCString(0),
81 fhConvDistMCConversion(0), fhConvDistMCConversionCuts(0)
85 for(Int_t ibin = 0; ibin < 6; ibin++)
101 const Int_t buffersize = 255;
102 char onePar[buffersize] ;
104 snprintf(onePar,buffersize,
"--- AliAnaPhotonConvInCalo---:") ;
106 snprintf(onePar,buffersize,
"Conversion pair mass cut = %1.2f and tight mass cut = %1.2f; ",
fMassCut,
fMassCutTight);
108 snprintf(onePar,buffersize,
"Conversion Selection: fConvAsymCut %1.2f, fConvDEtaCut %1.2f fConvDPhiCut (%1.2f,%1.2f); ",
114 return new TObjString(parList) ;
123 TList * outputContainer =
new TList() ;
124 outputContainer->SetName(
"PhotonConvInCaloHistos") ;
134 TString region[] = {
"ITS",
"TPC",
"TRD",
"TOF",
"Top EMCal",
"In EMCal"};
136 fhPtPhotonConv =
new TH1F(
"hPtPhotonConv",
"Number of #gamma over calorimeter, conversion",nptbins,ptmin,ptmax);
141 Float_t ebin[] = {0.3,0.4,0.5,0.6,0.75,1,2};
143 for(Int_t iebin = 0; iebin < 6; iebin++)
146 (Form(
"hEtaPhiPhotonConv_ebin%d",iebin),Form(
"pair #eta vs #phi, %2.2f<#it{E}<%2.2f GeV/#it{c}",ebin[iebin],ebin[iebin+1]),
147 netabins,etamin,etamax,nphibins,phimin,phimax);
153 (Form(
"hEtaPhiPhotonConvPaired_ebin%d",iebin),Form(
"cluster #eta vs #phi, %2.2f<#it{E}<%2.2f GeV/#it{c}",ebin[iebin],ebin[iebin+1]),
154 netabins,etamin,etamax,nphibins,phimin,phimax);
161 (
"hConvDeltaEta",
"#Delta #eta of selected conversion pairs",100,0,
fMassCut,netabins*2,-0.5,0.5);
167 (
"hConvDeltaPhi",
"#Delta #phi of selected conversion pairs",100,0,
fMassCut,nphibins*2,-0.5,0.5);
173 (
"hConvDeltaEtaPhi",
"#Delta #eta vs #Delta #phi of selected conversion pairs",netabins,-0.5,0.5,nphibins,-0.5,0.5);
179 (
"hConvAsym",
"Asymmetry of selected conversion pairs",100,0,
fMassCut,100,0,1);
181 fhConvAsym->SetXTitle(
"Pair Mass (GeV/#it{c}^{2})");
185 (
"hConvPt",
"#it{p}_{T} of selected conversion pairs",100,0,
fMassCut,100,0.,10.);
186 fhConvPt->SetYTitle(
"Pair #it{p}_{T} (GeV/#it{c})");
187 fhConvPt->SetXTitle(
"Pair #it{M} (GeV/#it{c}^{2})");
204 (
"hConvDistEta",
"distance to conversion vertex",netabins,etamin,etamax,ndist,mindist,maxdist);
210 (
"hConvDistPhi",
"distance to conversion vertex",nphibins,phimin,phimax,ndist,mindist,maxdist);
216 (
"hConvDistEn",
"distance to conversion vertex",nptbins,ptmin,ptmax,ndist,mindist,maxdist);
222 (
"hConvDistMass",
"distance to conversion vertex",100,0,
fMassCut,ndist,mindist,maxdist);
228 (
"hConvDistEtaCutEta",Form(
"distance to conversion vertex, #Delta #eta < %2.2f",
fConvDEtaCut),netabins,etamin,etamax,ndist,mindist,maxdist);
234 (
"hConvDistPhiCutEta",Form(
"distance to conversion vertex, #Delta #eta < %2.2f",
fConvDEtaCut),nphibins,phimin,phimax,ndist,mindist,maxdist);
240 (
"hConvDistEnCutEta",Form(
"distance to conversion vertex, #Delta #eta < %2.2f",
fConvDEtaCut),nptbins,ptmin,ptmax,ndist,mindist,maxdist);
246 (
"hConvDistMassCutEta",Form(
"distance to conversion vertex, #Delta #eta < %2.2f",
fConvDEtaCut),100,0,
fMassCut,ndist,mindist,maxdist);
252 (
"hConvDistEtaCutMass",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}",
fMassCutTight),netabins,etamin,etamax,ndist,mindist,maxdist);
258 (
"hConvDistPhiCutMass",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}",
fMassCutTight),nphibins,phimin,phimax,ndist,mindist,maxdist);
264 (
"hConvDistEnCutMass",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}",
fMassCutTight),nptbins,ptmin,ptmax,ndist,mindist,maxdist);
270 (
"hConvDistEtaCutAsy",Form(
"distance to conversion vertex, #it{A} < %2.2f",
fConvAsymCut),netabins,etamin,etamax,ndist,mindist,maxdist);
276 (
"hConvDistPhiCutAsy",Form(
"distance to conversion vertex, #it{A} < %2.2f",
fConvAsymCut),nphibins,phimin,phimax,ndist,mindist,maxdist);
282 (
"hConvDistEnCutAsy",Form(
"distance to conversion vertex, #it{A} < %2.2f",
fConvAsymCut),nptbins,ptmin,ptmax,ndist,mindist,maxdist);
288 (
"hConvDistMassCutAsy",Form(
"distance to conversion vertex, #it{A} < %2.2f",
fConvDEtaCut),100,0,
fMassCut,ndist,mindist,maxdist);
294 (
"hConvDistEtaCutAll",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}, #Delta #eta < %2.2f, #it{A} < %2.2f",
301 (
"hConvDistPhiCutAll",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}, #Delta #eta < %2.2f, #it{A} < %2.2f",
308 (
"hConvDistEnCutAll",Form(
"distance to conversion vertex, #it{M} < %0.2f MeV/#it{c}^{2}, #Delta #eta < %2.2f, #it{A} < %2.2f",
317 fhPtConversionTagged =
new TH1F(
"hPtMCConversionTagged",
"Number of converted #gamma over calorimeter, tagged as converted",nptbins,ptmin,ptmax);
322 fhPtAntiNeutronTagged =
new TH1F(
"hPtMCAntiNeutronTagged",
"Number of AntiNeutron id as Photon over calorimeter, tagged as converted",nptbins,ptmin,ptmax);
327 fhPtAntiProtonTagged =
new TH1F(
"hPtMCAntiProtonTagged",
"Number of AntiProton id as Photon over calorimeter, tagged as converted",nptbins,ptmin,ptmax);
332 fhPtUnknownTagged =
new TH1F(
"hPtMCUnknownTagged",
"Number of Unknown id as Photon over calorimeter, tagged as converted",nptbins,ptmin,ptmax);
340 (
"hConvDistMCConversion",
"calculated conversion distance vs real vertes for MC conversion",ndist,mindist,maxdist,ndist,mindist,maxdist);
346 (
"hConvDistMCConversionCuts",
347 Form(
"calculated conversion distance vs real vertes for MC conversion, #Delta #eta < %2.2f, #it{M} < 10 MeV/#it{c}^{2}, #it{A} < %2.2f",
349 ndist,mindist,maxdist,ndist,mindist,maxdist);
356 (
"hConvDeltaEtaMCConversion",
"#Delta #eta of selected conversion pairs from real conversions",100,0,
fMassCut,netabins,-0.5,0.5);
362 (
"hConvDeltaPhiMCConversion",
"#Delta #phi of selected conversion pairs from real conversions",100,0,
fMassCut,nphibins,-0.5,0.5);
368 (
"hConvDeltaEtaPhiMCConversion",
"#Delta #eta vs #Delta #phi of selected conversion pairs, from real conversions",netabins,-0.5,0.5,nphibins,-0.5,0.5);
374 (
"hConvAsymMCConversion",
"Asymmetry of selected conversion pairs from real conversions",100,0,
fMassCut,100,0,1);
380 (
"hConvPtMCConversion",
"#it{p}_{T} of selected conversion pairs from real conversions",100,0,
fMassCut,nptbins,ptmin,ptmax);
385 for(Int_t iR = 0; iR < 6; iR++)
388 (Form(
"hConvPtMCConversion_R%d",iR),
389 Form(
"#it{p}_{T} of selected conversion pairs from real conversions in %s",region[iR].
Data()),
390 100,0,
fMassCut,nptbins,ptmin,ptmax);
403 (
"hConvM02MCConversion",
"#it{p}_{T} of selected conversion pairs from real conversion",100,0.,1.,100,0.,1.);
409 (
"hConvDeltaEtaMCAntiNeutron",
"#Delta #eta of selected conversion pairs from anti-neutrons",100,0,
fMassCut,netabins,-0.5,0.5);
415 (
"hConvDeltaPhiMCAntiNeutron",
"#Delta #phi of selected conversion pairs from anti-neutrons",100,0,
fMassCut,nphibins,-0.5,0.5);
421 (
"hConvDeltaEtaPhiMCAntiNeutron",
"#Delta #eta vs #Delta #phi of selected conversion pairs from anti-neutrons",netabins,-0.5,0.5,nphibins,-0.5,0.5);
427 (
"hConvAsymMCAntiNeutron",
"Asymmetry of selected conversion pairs from anti-neutrons",100,0,
fMassCut,100,0,1);
433 (
"hConvPtMCAntiNeutron",
"#it{p}_{T} of selected conversion pairs from anti-neutrons",100,0,
fMassCut,nptbins,ptmin,ptmax);
445 (
"hConvM02MCAntiNeutron",
"#it{p}_{T} of selected conversion pairs from string",100,0.,1.,100,0.,1.);
451 (
"hConvDeltaEtaMCAntiProton",
"#Delta #eta of selected conversion pairs from anti-protons",100,0,
fMassCut,netabins,-0.5,0.5);
457 (
"hConvDeltaPhiMCAntiProton",
"#Delta #phi of selected conversion pairs from anti-protons",100,0,
fMassCut,nphibins,-0.5,0.5);
463 (
"hConvDeltaEtaPhiMCAntiProton",
"#Delta #eta vs #Delta #phi of selected conversion pairs from anti-protons",netabins,-0.5,0.5,nphibins,-0.5,0.5);
469 (
"hConvAsymMCAntiProton",
"Asymmetry of selected conversion pairs from anti-protons",100,0,
fMassCut,100,0,1);
475 (
"hConvPtMCAntiProton",
"#it{p}_{T} of selected conversion pairs from anti-protons",100,0,
fMassCut,nptbins,ptmin,ptmax);
487 (
"hConvM02MCAntiProton",
"#it{p}_{T} of selected conversion pairs from string",100,0.,1.,100,0.,1.);
493 (
"hConvDeltaEtaMCString",
"#Delta #eta of selected conversion pairs from string",100,0,
fMassCut,netabins,-0.5,0.5);
499 (
"hConvDeltaPhiMCString",
"#Delta #phi of selected conversion pairs from string",100,0,
fMassCut,nphibins,-0.5,0.5);
505 (
"hConvDeltaEtaPhiMCString",
"#Delta #eta vs #Delta #phi of selected conversion pairs from string",netabins,-0.5,0.5,nphibins,-0.5,0.5);
511 (
"hConvAsymMCString",
"Asymmetry of selected conversion pairs from string",100,0,
fMassCut,100,0,1);
517 (
"hConvPtMCString",
"#it{p}_{T} of selected conversion pairs from string",100,0,
fMassCut,nptbins,ptmin,ptmax);
529 (
"hConvM02MCString",
"#it{p}_{T} of selected conversion pairs from string",100,0.,1.,100,0.,1.);
535 return outputContainer ;
563 AliDebug(1,Form(
"AOD branch entries %d", naod));
566 Bool_t * indexConverted =
new Bool_t[naod];
567 for (Int_t i = 0; i < naod; i++) indexConverted[i] = kFALSE;
569 for(Int_t iaod = 0; iaod < naod ; iaod++)
573 Bool_t bConverted = kFALSE;
579 AliAODPWG4Particle* calo2 = 0;
580 for(Int_t jaod = iaod + 1 ; jaod < naod ; jaod++)
591 fMomentum = *(calo->Momentum())+*(calo2->Momentum());
596 Float_t pairM = calo->GetPairMass(calo2);
603 Float_t phi = calo->Phi();
604 if(phi < 0) phi +=TMath::TwoPi();
605 Float_t phi2 = calo2->Phi();
606 if(phi2 < 0) phi2+=TMath::TwoPi();
608 calo->SetTagged(kFALSE);
609 Float_t asymmetry = TMath::Abs(calo->E()-calo2->E())/(calo->E()+calo2->E());
610 Float_t dPhi = phi-phi2;
611 Float_t dEta = calo->Eta() - calo2->Eta();
623 Float_t convDist = -1;
624 Float_t convDist2 = -1;
638 TObjArray * clusters = 0;
643 AliVCluster *cluster1 =
FindCluster(clusters,calo ->GetCaloLabel(0),iclus);
644 AliVCluster *cluster2 =
FindCluster(clusters,calo2->GetCaloLabel(0),iclus);
647 cluster1->GetPosition(pos1);
649 cluster2->GetPosition(pos2);
650 Float_t clustDist = TMath::Sqrt((pos1[0]-pos2[0])*(pos1[0]-pos2[0])+
651 (pos1[1]-pos2[1])*(pos1[1]-pos2[1])+
652 (pos1[2]-pos2[2])*(pos1[2]-pos2[2]));
654 Float_t convDist = TMath::Sqrt(calo ->E()*clustDist*0.01/0.15) * 100.;
655 Float_t convDist2 = TMath::Sqrt(calo2->E()*clustDist*0.01/0.15) * 100.;
657 AliDebug(2,Form(
"Pair with mass %2.3f < %2.3f, %1.2f < dPhi %2.2f < %2.2f, dEta %f < %2.2f, asymmetry %2.2f< %2.2f; \n"
658 " cluster1 id %d, e %2.3f SM %d, eta %2.3f, phi %2.3f ; \n"
659 " cluster2 id %d, e %2.3f, SM %d, eta %2.3f, phi %2.3f \n",
759 Int_t tag1 = calo ->GetTag();
760 Int_t tag2 = calo2->GetTag();
763 Float_t l0cl1 = calo ->GetM02();
764 Float_t l0cl2 = calo2->GetM02();
787 if ( prodR < 75. ) convR = 0;
788 else if ( prodR < 275. ) convR = 1;
789 else if ( prodR < 375. ) convR = 2;
790 else if ( prodR < 400. ) convR = 3;
791 else if ( prodR < 430. ) convR = 4;
833 if( ancPDG < 22 && ancLabel > 7 && (ancStatus == 11 || ancStatus == 12) )
855 indexConverted[iaod] = kTRUE;
856 indexConverted[jaod] = kTRUE;
859 Float_t ebin[] = {0.3,0.4,0.5,0.6,0.75,1,2};
863 for(Int_t iebin = 0; iebin < 6; iebin++)
865 if( calo ->Pt() > ebin[iebin] && calo ->Pt() <= ebin[iebin+1] ) bin1 = iebin ;
866 if( calo2->Pt() > ebin[iebin] && calo2->Pt() <= ebin[iebin+1] ) bin2 = iebin ;
867 if( ptConvPair > ebin[iebin] && ptConvPair <= ebin[iebin+1] ) bin12 = iebin ;
880 Int_t label =calo->GetLabel();
883 AliDebug(1,Form(
"*** bad label ***: label %d", label));
893 AliDebug(1,Form(
"*** large label ***: label %d, n tracks %d", label,
GetMCStack()->GetNtrack()));
897 TParticle* primary =
GetMCStack()->Particle(label);
900 AliDebug(1,Form(
"*** no primary ***: label %d", label));
906 else if(
GetReader()->ReadAODMCParticles())
910 if(label >= mcparticles->GetEntriesFast())
912 AliDebug(2,Form(
"*** large label ***: label %d, n tracks %d",label, mcparticles->GetEntriesFast()));
917 AliAODMCParticle* aodprimary = (AliAODMCParticle*) mcparticles->At(label);
921 AliDebug(2,Form(
"*** no primary ***: label %d", label));
929 Int_t tag = calo ->GetTag();
960 AliAODPWG4Particle aodpair = AliAODPWG4Particle(
fMomentum);
961 aodpair.SetLabel(calo->GetLabel());
964 aodpair.SetCaloLabel(calo->GetCaloLabel(0),calo2->GetCaloLabel(0));
965 aodpair.SetDetectorTag(calo->GetDetectorTag());
966 aodpair.SetIdentifiedParticleType(calo->GetIdentifiedParticleType());
967 aodpair.SetTag(calo->GetTag());
968 aodpair.SetTagged(kTRUE);
981 calo ->SetTagged(kTRUE);
982 calo2->SetTagged(kTRUE);
995 for(Int_t iaod = 0; iaod < naod ; iaod++)
1002 delete [] indexConverted;
1004 AliDebug(1,Form(
"End fill AODs, with %d entries",
GetOutputAODBranch()->GetEntriesFast()));
1016 printf(
"**** Print %s %s ****\n", GetName(), GetTitle() ) ;
1021 printf(
"Conversion selection cut : A < %1.2f; %1.3f < Dphi < %1.3f; Deta < %1.3f\n",
Float_t GetHistoPtMax() const
TH2F * fhConvDeltaEtaPhi
! Small mass photons, correlation in phi and eta
TH2F * fhConvDeltaEtaMCAntiNeutron
! Small mass cluster pairs, correlation in eta, origin of both clusters is anti neutron ...
TH2F * fhConvM02MCAntiProton
! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is anti proton ...
TH2F * fhConvDistMassCutEta
! Approx distance to vertex vs Mass, dEta < fConvDEtaCut
Float_t GetHistoPtMin() const
Float_t fConvDPhiMaxCut
Select conversion pairs when dphi of pair smaller than cut.
Float_t fConvDPhiMinCut
Select conversion pairs when dphi of pair lager than cut.
virtual void AddToHistogramsName(TString add)
TH2F * fhConvM02MCAntiNeutron
! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is anti neutron ...
virtual Bool_t IsDataMC() const
TH2F * fhConvDistEnCutAll
! Approx distance to vertex vs energy, dEta < fConvDEtacut, M < 20 MeV/c^2, A < fConvAsymCut ...
TH2F * fhConvDistPhi
! Approx distance to vertex vs azimuth
TH2F * fhConvDistMCConversionCuts
! Calculated conversion distance vs real distance to vertex
Bool_t fRemoveConvertedPair
Remove conversion pairs.
virtual AliStack * GetMCStack() const
Float_t fConvDEtaCut
Select conversion pairs when deta of pair smaller than cut.
TList * GetCreateOutputObjects()
TH2F * fhConvM02MCConversion
! Small mass cluster pairs, m02 of cluster 1 vs cluster 2
TH2F * fhConvDeltaEtaMCConversion
! Small mass cluster pairs, correlation in eta, origin of both clusters is conversion ...
TH2F * fhConvPt
! Small mass photons, pT of pair
TH2F * fhConvDeltaPhiMCConversion
! Small mass cluster pairs, correlation in phi, origin of both clusters is conversion ...
TH2F * fhConvDistEta
! Approx distance to vertex vs rapidity
Int_t GetHistoPhiBins() const
TH1F * fhPtAntiNeutronTagged
! Number of identified gamma from AntiNeutrons gamma, tagged as conversion
virtual TClonesArray * GetOutputAODBranch() const
TH2F * fhConvDeltaEta
! Small mass photons, correlation in eta
Float_t GetHistoPhiMin() const
TH2F * fhConvAsymMCString
! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is string ...
TH2F * fhConvPtMCConversionRcut[6]
! Small mass cluster pairs, pt of pair, origin of both clusters is conversion, for different producti...
TH2F * fhConvPtMCConversion
! Small mass cluster pairs, pt of pair, origin of both clusters is conversion
TH2F * fhConvAsym
! Small mass photons, correlation in energy asymmetry
Int_t GetModuleNumber(AliAODPWG4Particle *particle, AliVEvent *inputEvent) const
Get the EMCAL/PHOS module number that corresponds to this particle.
TH2F * fhConvDeltaEtaMCString
! Small mass cluster pairs, correlation in eta, origin of both clusters is string ...
TH2F * fhConvDistEtaCutAsy
! Approx distance to vertex vs rapidity, A < fConvAsymCut
Base class for CaloTrackCorr analysis algorithms.
TH2F * fhConvDeltaPhi
! Small mass photons, correlation in phi
TH2F * fhConvDeltaPhiMCAntiProton
! Small mass cluster pairs, correlation in phi, origin of both clusters is anti proton ...
TH1F * fhPtUnknownTagged
! Number of identified gamma from unknown, tagged as conversion
TH2F * fhConvDistEtaCutEta
! Approx distance to vertex vs rapidity, dEta < fConvDEtaCut
void InitParameters()
Initialize the parameters of the analysis.
TObjString * GetAnalysisCuts()
Save parameters used for analysis.
TH1F * fhPtPhotonConv
! Number of identified photon vs transverse momentum
TH2F * fhConvDistEnCutAsy
! Approx distance to vertex vs energy, A < fConvAsymCut
TH2F * fhConvPtMCAntiNeutron
! Small mass cluster pairs, pt of pair, origin of both clusters is anti neutron
virtual TClonesArray * GetAODMCParticles() const
virtual AliHistogramRanges * GetHistogramRanges()
TH2F * fhConvDistEnCutEta
! Approx distance to vertex vs Energy, dEta < fConvDEtaCut
TH2F * fhConvDeltaEtaPhiMCAntiProton
! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is anti proton ...
TH2F * fhConvPtMCString
! Small mass cluster pairs, pt of pairs, origin of both clusters is string
TH2F * fhConvDistMass
! Approx distance to vertex vs Mass
TH2F * fhEtaPhiPhotonConv[6]
! Pseudorapidity vs Phi of identified photon conv pair for 6 transverse momentum bins ...
TH2F * fhConvDeltaPhiMCAntiNeutron
! Small mass cluster pairs, correlation in phi, origin of both clusters is anti neutron ...
TH1F * fhPtConversionTagged
! Number of identified gamma from Conversion , tagged as conversion
TH2F * fhConvDistPhiCutMass
! Approx distance to vertex vs azimuth, M < 20 MeV/c^2
virtual AliCalorimeterUtils * GetCaloUtils() const
TH2F * fhConvDeltaEtaPhiMCConversion
! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is conversion ...
void MakeAnalysisFillHistograms()
AliAnaPhotonConvInCalo()
Default constructor. Initialize parameters.
TH2F * fhEtaPhiPhotonConvPaired[6]
! Pseudorapidity vs Phi of identified photon conv leg for 6 transverse momentum bins ...
TH2F * fhConvDeltaEtaPhiMCString
! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is string ...
TH2F * fhConvDistEn
! Approx distance to vertex vs Energy
Float_t fMassCutTight
Mass cut for the conversion pairs selection, tighter.
virtual Double_t GetEventWeight() const
Bool_t fFillClusterConvDistHisto
Fill histograms with calculated conversion distance with data clusters.
TH2F * fhConvDistEtaCutAll
! Approx distance to vertex vs rapidity, dEta < fConvDEtaCut, M < 20 MeV/c^2, A < fConvAsymCut ...
virtual TObjArray * GetPHOSClusters() const
Float_t GetHistoEtaMin() const
TH2F * fhConvDistMCConversion
! Calculated conversion distance vs real distance to vertex
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)
TH2F * fhConvDeltaEtaMCAntiProton
! Small mass cluster pairs, correlation in eta, origin of both clusters is anti proton ...
TH2F * fhConvDistPhiCutAll
! Approx distance to vertex vs azimuth, dEta < fConvDEtaCut, M < 20 MeV/c^2, A < fConvAsymCut ...
virtual Int_t GetModuleNumber(AliAODPWG4Particle *part) const
TH1F * fhPtAntiProtonTagged
! Number of identified gamma from AntiProtons gamma, tagged as conversion
TH2F * fhConvPtMCAntiProton
! Small mass cluster pairs, pt of pairs, origin of both clusters is anti proton
TH2F * fhConvDistEtaCutMass
! Approx distance to vertex vs rapidity, M < 20 MeV/c^2
TH2F * fhConvAsymMCAntiProton
! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is anti proton ...
Float_t GetHistoEtaMax() const
virtual void AddAODParticle(AliAODPWG4Particle part)
Int_t GetHistoPtBins() const
TH2F * fhConvM02MCString
! Small mass cluster pairs, m02 of cluster 1 vs cluster 2, origin of both clusters is string ...
Bool_t fAddConvertedPairsToAOD
Put Converted pairs in AOD.
TLorentzVector fMomentum
! Cluster momentum
TH2F * fhConvDistMassCutAsy
! Approx distance to vertex vs mass, A < fConvAsymCut
TH2F * fhConvAsymMCAntiNeutron
! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is anti neutron ...
TH2F * fhConvDistPhiCutEta
! Approx distance to vertex vs azimuth
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
Conversions pairs clusters analysis.
virtual AliMCAnalysisUtils * GetMCAnalysisUtils()
TVector3 fProdVertex
! Production vertex
Float_t fConvAsymCut
Select conversion pairs when asymmetry is smaller than cut.
virtual void Print(const Option_t *) const
Print some relevant parameters set for the analysis.
TH2F * fhConvAsymMCConversion
! Small mass cluster pairs, correlation in energy asymmetry, origin of both clusters is conversion ...
Float_t fMassCut
Mass cut for the conversion pairs selection.
virtual AliVCluster * FindCluster(TObjArray *clusters, Int_t clId, Int_t &iclus, Int_t first=0)
void Print(const Option_t *opt) const
Print some relevant parameters set for the analysis.
Float_t GetHistoPhiMax() const
virtual AliCaloTrackReader * GetReader() const
Int_t GetHistoEtaBins() const
TH2F * fhConvDistEnCutMass
! Approx distance to vertex vs Energy, M < 20 MeV/c^2
virtual TObjArray * GetEMCALClusters() const
Int_t CheckCommonAncestor(Int_t index1, Int_t index2, const AliCaloTrackReader *reader, Int_t &ancPDG, Int_t &ancStatus, TLorentzVector &momentum, TVector3 &prodVertex)
TH2F * fhConvDeltaEtaPhiMCAntiNeutron
! Small mass cluster pairs, correlation in eta-phi, origin of both clusters is anti neutron ...
TH2F * fhConvDeltaPhiMCString
! Small mass cluster pairs, correlation in phi, origin of both clusters is string ...
TH2F * fhConvDistPhiCutAsy
! Approx distance to vertex vs azimuth, A < fConvAsymCut