//____________________________________________________________________________
AliNeutralMesonSelection::AliNeutralMesonSelection() :
TObject(), fAsymmetryCut(1), fUseAsymmetryCut(0),
- fM(0), fInvMassMaxCut(0.), fInvMassMinCut(0.),
+ fM(0), fInvMassMaxCut(0.), fInvMassMinCut(0.), fInvMassMaxCutParam(),
fAngleMaxParam(), fUseAngleCut(0),
fShiftMinAngle(0), fKeepNeutralMesonHistos(0),
fhAnglePairNoCut(0), fhAnglePairOpeningAngleCut(0), fhAnglePairAsymmetryCut(0), fhAnglePairAllCut(0),
fhInvMassPairNoCut(0), fhInvMassPairOpeningAngleCut(0), fhInvMassPairAsymmetryCut(0), fhInvMassPairAllCut(0),
fhAsymmetryNoCut(0), fhAsymmetryOpeningAngleCut(0), fhAsymmetryAllCut(0),
fHistoNEBins(0), fHistoEMax(0.), fHistoEMin(0.),
- fHistoNPtBins(0), fHistoPtMax(0.), fHistoPtMin(0.),
fHistoNAngleBins(0), fHistoAngleMax(0.), fHistoAngleMin(0.),
fHistoNIMBins(0), fHistoIMMax(0.), fHistoIMMin(0.)
{
fhAsymmetryNoCut = new TH2F
("AsymmetryNoCut","Asymmetry of all #gamma pair vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,100,0,1);
+ fHistoNEBins,fHistoEMin,fHistoEMax,100,0,1);
fhAsymmetryNoCut->SetYTitle("Asymmetry");
fhAsymmetryNoCut->SetXTitle("E_{ #pi^{0}} (GeV)");
fhInvMassPairNoCut = new TH2F
("InvMassPairNoCut","Invariant Mass of all #gamma pair vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
+ fHistoNEBins,fHistoEMin,fHistoEMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
fhInvMassPairNoCut->SetYTitle("Invariant Mass (GeV/c^{2})");
fhInvMassPairNoCut->SetXTitle("E_{ #pi^{0}} (GeV)");
fhAsymmetryOpeningAngleCut = new TH2F
("AsymmetryOpeningAngleCut",
"Asymmetry of #gamma pair (angle cut) vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,100,0,1);
+ fHistoNEBins,fHistoEMin,fHistoEMax,100,0,1);
fhAsymmetryOpeningAngleCut->SetYTitle("Asymmetry");
fhAsymmetryOpeningAngleCut->SetXTitle(" E_{#pi^{0}}(GeV)");
fhInvMassPairOpeningAngleCut = new TH2F
("InvMassPairOpeningAngleCut",
"Invariant Mass of #gamma pair (angle cut) vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
+ fHistoNEBins,fHistoEMin,fHistoEMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
fhInvMassPairOpeningAngleCut->SetYTitle("Invariant Mass (GeV/c^{2})");
fhInvMassPairOpeningAngleCut->SetXTitle(" E_{#pi^{0}}(GeV)");
fhInvMassPairAsymmetryCut = new TH2F
("InvMassPairAsymmetryCut",
"Invariant Mass of #gamma pair (opening angle + asymmetry) vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
+ fHistoNEBins,fHistoEMin,fHistoEMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
fhInvMassPairAsymmetryCut->SetYTitle("Invariant Mass (GeV/c^{2})");
fhInvMassPairAsymmetryCut->SetXTitle("E_{#pi^{0}}(GeV)");
fhInvMassPairAllCut = new TH2F
("InvMassPairAllCut",
"Invariant Mass of #gamma pair (opening angle + asymmetry + invmass cut) vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
+ fHistoNEBins,fHistoEMin,fHistoEMax,fHistoNIMBins,fHistoIMMin,fHistoIMMax);
fhInvMassPairAllCut->SetYTitle("Invariant Mass (GeV/c^{2})");
fhInvMassPairAllCut->SetXTitle("E_{#pi^{0}}(GeV)");
fhAsymmetryAllCut = new TH2F
("AsymmetryAllCut",
"Asymmetry of #gamma pair (opening angle+invmass cut) vs E_{#pi^{0}}",
- fHistoNPtBins,fHistoPtMin,fHistoPtMax,100,0,1);
+ fHistoNEBins,fHistoEMin,fHistoEMax,100,0,1);
fhAsymmetryAllCut->SetYTitle("Asymmetry");
fhAsymmetryAllCut->SetXTitle("E_{#pi^{0}}(GeV)");
//Initialize the parameters of the analysis.
fAngleMaxParam.Set(4) ;
fAngleMaxParam.Reset(0.);
- fAngleMaxParam.AddAt(0.4,0);
- fAngleMaxParam.AddAt(-0.25,1) ;
- fAngleMaxParam.AddAt(0.025,2) ;
- fAngleMaxParam.AddAt(-2e-4,3) ;
- fShiftMinAngle = 0.02 ;
- fInvMassMaxCut = 0.16 ;
- fInvMassMinCut = 0.11 ;
- fM = 0.1349766 ;//neutralMeson mass, pi0
+ SetParticle("Pi0");
+
+ fShiftMinAngle = 0.03;
- //Histogrammes settings
- fHistoNEBins = 100 ;
- fHistoEMax = 20 ;
+ //Histogrammes settings
+ fHistoNEBins = 200 ;
+ fHistoEMax = 50 ;
fHistoEMin = 0. ;
-
- fHistoNPtBins = 100 ;
- fHistoPtMax = 20 ;
- fHistoPtMin = 0. ;
- fHistoNAngleBins = 100 ;
- fHistoAngleMax = 0.2;
+ fHistoNAngleBins = 200 ;
+ fHistoAngleMax = 0.5 ;
fHistoAngleMin = 0. ;
- fHistoNIMBins = 100 ;
- fHistoIMMax = 0.3 ;
- fHistoIMMin = 0. ;
}
//__________________________________________________________________________-
// Check if the opening angle of the candidate pairs is inside
// our selection window
- // Attention, only valid for Pi0, if needed for Eta need to revise function or change parameters
+ // Attention, only valid for Pi0, if needed for Eta need to revise max angle function or change parameters
Double_t max = fAngleMaxParam.At(0)*TMath::Exp(fAngleMaxParam.At(1)*e)
+fAngleMaxParam.At(2)+fAngleMaxParam.At(3)*e;
Double_t min = 100. ;
if(arg>0.)
min = TMath::ACos(arg)-fShiftMinAngle;
-
+
if((angle<max)&&(angle>=min)) return kTRUE ;
else return kFALSE ;
}
//____________________________________________________________________________
-Bool_t AliNeutralMesonSelection::SelectPair(TLorentzVector gammai, TLorentzVector gammaj)
+Bool_t AliNeutralMesonSelection::SelectPair(TLorentzVector gammai, TLorentzVector gammaj, TString calo)
{
//Search for the neutral pion within selection cuts
//Cut on the invariant mass of the pair
- if((invmass > fInvMassMinCut) && (invmass < fInvMassMaxCut)){
+
+ Float_t invmassmaxcut = fInvMassMaxCut;
+ if(calo=="EMCAL" && e > 6.){ // for EMCAL, pi0s, mass depends strongly with energy for e > 6, loose max cut
+
+ invmassmaxcut = (fInvMassMaxCutParam[0]+fInvMassMaxCut)+fInvMassMaxCutParam[1]*e+fInvMassMaxCutParam[2]*e*e;
+ //printf("e %f, max cut %f, p00 %f,p0 %f,p1 %f,p2 %f\n",
+ // e,invmassmaxcut,fInvMassMaxCut,fInvMassMaxCutParam[0],fInvMassMaxCutParam[1],fInvMassMaxCutParam[2]);
+ }
+
+ if((invmass > fInvMassMinCut) && (invmass < invmassmaxcut)){
if(fKeepNeutralMesonHistos){
fhInvMassPairAllCut->Fill(e,invmass);
fhAnglePairAllCut ->Fill(e,angle);
}
+//____________________________________________________________________________
+void AliNeutralMesonSelection::SetParticle(TString particleName){
+ // Set some default parameters for selection of pi0 or eta
+
+ if(particleName=="Pi0"){
+
+ fM = 0.135 ; // GeV
+ fInvMassMaxCut = 0.16 ; // GeV
+ fInvMassMinCut = 0.11 ; // GeV
+
+ fInvMassMaxCutParam[0] = 0.0 ;
+ fInvMassMaxCutParam[1] =-7.e-5 ;
+ fInvMassMaxCutParam[2] = 8.e-5 ;
+
+ fAngleMaxParam.AddAt( 0.40, 0) ;
+ fAngleMaxParam.AddAt(-0.25, 1) ;
+ fAngleMaxParam.AddAt( 0.025,2) ; //for pi0 shift, for eta maybe 0.09
+ fAngleMaxParam.AddAt(-2.e-4,3) ;
+
+ fHistoNIMBins = 150 ;
+ fHistoIMMax = 0.3 ;
+ fHistoIMMin = 0. ;
+
+ }else if(particleName=="Eta"){
+
+ fM = 0.547 ; // GeV
+ fInvMassMaxCut = 0.590 ; // GeV
+ fInvMassMinCut = 0.510 ; // GeV
+
+ fInvMassMaxCutParam[0] = 0.0 ;
+ fInvMassMaxCutParam[1] = 0.0 ;
+ fInvMassMaxCutParam[2] = 0.0 ;
+
+ fAngleMaxParam.AddAt( 0.40, 0) ; // Same as pi0
+ fAngleMaxParam.AddAt(-0.25, 1) ; // Same as pi0
+ fAngleMaxParam.AddAt( 0.1,2) ; // Shifted with respect to pi0
+ fAngleMaxParam.AddAt(-2.e-4,3) ; // Same as pi0
+
+ fHistoNIMBins = 200 ; // GeV
+ fHistoIMMax = 0.75 ; // GeV
+ fHistoIMMin = 0.35 ; // GeV
+
+ }
+ else
+ printf("AliAnaNeutralMesonSelection::SetParticle(%s) *** Particle NOT defined (Pi0 or Eta), Pi0 settings by default *** \n",particleName.Data());
+
+
+}
+
//__________________________________________________________________
void AliNeutralMesonSelection::Print(const Option_t * opt) const
{
if(fKeepNeutralMesonHistos){
printf("Histograms: %3.1f < E < %3.1f, Nbin = %d\n", fHistoEMin, fHistoEMax, fHistoNEBins);
- printf("Histograms: %3.1f < pT < %3.1f, Nbin = %d\n", fHistoPtMin, fHistoPtMax, fHistoNPtBins);
printf("Histograms: %3.1f < angle < %3.1f, Nbin = %d\n", fHistoAngleMin, fHistoAngleMax, fHistoNAngleBins);
- printf("Histograms: %3.1f < IM < %3.1f, Nbin = %d\n", fHistoIMMin, fHistoIMMax, fHistoNIMBins);
-
+ printf("Histograms: %3.1f < IM < %3.1f, Nbin = %d\n", fHistoIMMin, fHistoIMMax, fHistoNIMBins);
}
}
//Histograms
fhPtPi0(0), fhEPi0(0), fhEEtaPhiPi0(0),
//Shower shape histos
- fhEDispersion(0), fhELambda0(0), fhELambda1(0),
+ fhEDispersion(0), fhELambda0(0), fhELambda1(0),
+ fhELambda0NoTRD(0), fhELambda0FracMaxCellCut(0),
+ fhEFracMaxCell(0), fhEFracMaxCellNoTRD(0),
//Time histograms
- fhClusterPairDiffTimeE(0), fhClusterPairDiffTimeAsy(0),
+ fhClusterPairDiffTimeE(0), fhClusterPairDiffTimeAsy(0),
//MC histos
fhPtMCNoPi0(0), fhPhiMCNoPi0(0), fhEtaMCNoPi0(0),
fhPtMCPi0(0), fhPhiMCPi0(0), fhEtaMCPi0(0)
for(Int_t i = 0; i < 6; i++){
fhEMCLambda0[i] = 0;
+ fhEMCLambda0NoTRD[i]= 0;
+ fhEMCLambda0FracMaxCellCut[i]= 0;
+ fhEMCFracMaxCell[i] = 0;
fhEMCLambda1[i] = 0;
fhEMCDispersion[i] = 0;
}
fhELambda0->SetYTitle("#lambda_{0}^{2}");
fhELambda0->SetXTitle("E (GeV)");
outputContainer->Add(fhELambda0) ;
+
+
+ fhELambda0FracMaxCellCut = new TH2F
+ ("hELambda0FracMaxCellCut","Selected #pi^{0} pairs: E vs #lambda_{0}, Max cell fraction of energy < 0.5",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
+ fhELambda0FracMaxCellCut->SetYTitle("#lambda_{0}^{2}");
+ fhELambda0FracMaxCellCut->SetXTitle("E (GeV)");
+ outputContainer->Add(fhELambda0FracMaxCellCut) ;
+
+ fhEFracMaxCell = new TH2F
+ ("hEFracMaxCell","Selected #pi^{0} pairs: E vs #lambda_{0}, Max cell fraction of energy",nptbins,ptmin,ptmax,100,0,1);
+ fhEFracMaxCell->SetYTitle("Fraction");
+ fhEFracMaxCell->SetXTitle("E (GeV)");
+ outputContainer->Add(fhEFracMaxCell) ;
+
+ if(fCalorimeter=="EMCAL"){
+ fhELambda0NoTRD = new TH2F
+ ("hELambda0NoTRD","Selected #pi^{0} pairs: E vs #lambda_{0}, not behind TRD",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
+ fhELambda0NoTRD->SetYTitle("#lambda_{0}^{2}");
+ fhELambda0NoTRD->SetXTitle("E (GeV)");
+ outputContainer->Add(fhELambda0NoTRD) ;
+
+ fhEFracMaxCellNoTRD = new TH2F
+ ("hEFracMaxCellNoTRD","Selected #pi^{0} pairs: E vs #lambda_{0}, Max cell fraction of energy, not behind TRD",nptbins,ptmin,ptmax,100,0,1);
+ fhEFracMaxCellNoTRD->SetYTitle("Fraction");
+ fhEFracMaxCellNoTRD->SetXTitle("E (GeV)");
+ outputContainer->Add(fhEFracMaxCellNoTRD) ;
+ }
fhELambda1 = new TH2F
("hELambda1","Selected #pi^{0} pairs: E vs #lambda_{1}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
fhEMCLambda0[i]->SetXTitle("E (GeV)");
outputContainer->Add(fhEMCLambda0[i]) ;
+ if(fCalorimeter=="EMCAL"){
+ fhEMCLambda0NoTRD[i] = new TH2F(Form("hELambda0NoTRD_MC%s",pname[i].Data()),
+ Form("Selected pair, cluster from %s : E vs #lambda_{0}^{2}, NoTRD",ptype[i].Data()),
+ nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
+ fhEMCLambda0NoTRD[i]->SetYTitle("#lambda_{0}^{2}");
+ fhEMCLambda0NoTRD[i]->SetXTitle("E (GeV)");
+ outputContainer->Add(fhEMCLambda0NoTRD[i]) ;
+ }
+
+ fhEMCLambda0FracMaxCellCut[i] = new TH2F(Form("hELambda0FracMaxCellCut_MC%s",pname[i].Data()),
+ Form("Selected pair, cluster from %s : E vs #lambda_{0}^{2}, Max cell fraction of energy < 0.5 ",ptype[i].Data()),
+ nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
+ fhEMCLambda0FracMaxCellCut[i]->SetYTitle("#lambda_{0}^{2}");
+ fhEMCLambda0FracMaxCellCut[i]->SetXTitle("E (GeV)");
+ outputContainer->Add(fhEMCLambda0FracMaxCellCut[i]) ;
+
+ fhEMCFracMaxCell[i] = new TH2F(Form("hEFracMaxCell_MC%s",pname[i].Data()),
+ Form("Selected pair, cluster from %s : E vs Max cell fraction of energy",ptype[i].Data()),
+ nptbins,ptmin,ptmax,100,0,1);
+ fhEMCFracMaxCell[i]->SetYTitle("Fraction");
+ fhEMCFracMaxCell[i]->SetXTitle("E (GeV)");
+ outputContainer->Add(fhEMCFracMaxCell[i]) ;
+
fhEMCLambda1[i] = new TH2F(Form("hELambda1_MC%s",pname[i].Data()),
Form("Selected pair, cluster from %s : E vs #lambda_{1}^{2}",ptype[i].Data()),
nptbins,ptmin,ptmax,ssbins,ssmin,ssmax);
}
//Select good pair (good phi, pt cuts, aperture and invariant mass)
- if(GetNeutralMesonSelection()->SelectPair(mom1, mom2))
+ if(GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter))
{
if(GetDebug()>1)
printf("AliAnaPi0EbE::MakeInvMassInCalorimeter() - Selected gamma pair: pt %f, phi %f, eta%f \n",(mom1+mom2).Pt(), (mom1+mom2).Phi()*180./3.1416, (mom1+mom2).Eta());
//Fill some histograms about shower shape
if(clusters && GetReader()->GetDataType()!=AliCaloTrackReader::kMC){
+
+ AliVCaloCells * cell = 0x0;
+ if(fCalorimeter == "PHOS")
+ cell = GetPHOSCells();
+ else
+ cell = GetEMCALCells();
+
+ Float_t maxCellFraction1 = 0;
+ Float_t maxCellFraction2 = 0;
+ GetCaloUtils()->GetMaxEnergyCell(cell, cluster1, maxCellFraction1);
+ GetCaloUtils()->GetMaxEnergyCell(cell, cluster2, maxCellFraction2);
+ //printf("frac1 %f, frac2 %f\n",maxCellFraction1,maxCellFraction2);
+ fhEFracMaxCell->Fill(e1,maxCellFraction1);
+ fhEFracMaxCell->Fill(e2,maxCellFraction2);
+
//Photon1
//printf("Signal Cl1: e %f, pt %f, disp %f, l1 %f, l0 %f, eta %f, phi %f \n",
fhEDispersion->Fill(e1, disp1);
fhELambda0 ->Fill(e1, l01 );
fhELambda1 ->Fill(e1, l11 );
+ //printf("SM1 %d SM2 %d\n",GetModuleNumber(cluster2),GetModuleNumber(cluster1));
+
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6) {
+ fhELambda0NoTRD->Fill(e1, l01 );
+ fhEFracMaxCellNoTRD->Fill(e1,maxCellFraction1);
+ }
+
+ if(maxCellFraction1 < 0.5)
+ fhELambda0FracMaxCellCut->Fill(e1, l01 );
//Photon2
//printf("Signal Cl2: e %f, pt %f, disp %f, l1 %f, l0 %f, eta %f, phi %f \n",e
fhEDispersion->Fill(e2, disp2);
fhELambda0 ->Fill(e2, l02 );
fhELambda1 ->Fill(e2, l12 );
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6) {
+ fhELambda0NoTRD->Fill(e2, l02 );
+ fhEFracMaxCellNoTRD->Fill(e2,maxCellFraction2);
+ }
+ if(maxCellFraction2 < 0.5)
+ fhELambda0FracMaxCellCut->Fill(e2, l02 );
if(IsDataMC()) {
//Photon1
fhEMCLambda0[mcPi0] ->Fill(e1, l01);
fhEMCLambda1[mcPi0] ->Fill(e1, l11);
fhEMCDispersion[mcPi0] ->Fill(e1, disp1);
+
+ fhEMCFracMaxCell[mcPi0]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcPi0]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcPi0]->Fill(e1, l01 );
+
}//pi0
else if ( GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCEta) ){
fhEMCLambda0[mcEta] ->Fill(e1, l01);
fhEMCLambda1[mcEta] ->Fill(e1, l11);
fhEMCDispersion[mcEta] ->Fill(e1, disp1);
+ fhEMCFracMaxCell[mcEta]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcEta]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcEta]->Fill(e1, l01 );
}//eta
else if ( GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCPhoton) &&
- GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCConversion) ){
+ GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCConversion) ){
fhEMCLambda0[mcConversion] ->Fill(e1, l01);
fhEMCLambda1[mcConversion] ->Fill(e1, l11);
fhEMCDispersion[mcConversion] ->Fill(e1, disp1);
+ fhEMCFracMaxCell[mcConversion]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcConversion]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcConversion]->Fill(e1, l01 );
}//conversion photon
else if( GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCPhoton) ){
fhEMCLambda0[mcPhoton] ->Fill(e1, l01);
fhEMCLambda1[mcPhoton] ->Fill(e1, l11);
fhEMCDispersion[mcPhoton] ->Fill(e1, disp1);
+ fhEMCFracMaxCell[mcPhoton]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcPhoton]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcPhoton]->Fill(e1, l01 );
}//photon no conversion
else if ( GetMCAnalysisUtils()->CheckTagBit(tag1,AliMCAnalysisUtils::kMCElectron)){
fhEMCLambda0[mcElectron] ->Fill(e1, l01);
fhEMCLambda1[mcElectron] ->Fill(e1, l11);
fhEMCDispersion[mcElectron] ->Fill(e1, disp1);
+ fhEMCFracMaxCell[mcElectron]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcElectron]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcElectron]->Fill(e1, l01 );
}//electron
else {
fhEMCLambda0[mcHadron] ->Fill(e1, l01);
fhEMCLambda1[mcHadron] ->Fill(e1, l11);
fhEMCDispersion[mcHadron] ->Fill(e1, disp1);
+ fhEMCFracMaxCell[mcHadron]->Fill(e1,maxCellFraction1);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster1) < 6)
+ fhEMCLambda0NoTRD[mcHadron]->Fill(e1, l01 );
+ if(maxCellFraction1 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcHadron]->Fill(e1, l01 );
}//other particles
//Photon 2
if ( GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCPi0) ){
- fhEMCLambda0[mcPi0] ->Fill(e2, l02);
- fhEMCLambda1[mcPi0] ->Fill(e2, l12);
- fhEMCDispersion[mcPi0] ->Fill(e2, disp2);
+ fhEMCLambda0[mcPi0] ->Fill(e2, l02);
+ fhEMCLambda1[mcPi0] ->Fill(e2, l12);
+ fhEMCDispersion[mcPi0] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcPi0]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcPi0]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcPi0]->Fill(e2, l02 );
}//pi0
else if ( GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCEta) ){
fhEMCLambda0[mcEta] ->Fill(e2, l02);
fhEMCLambda1[mcEta] ->Fill(e2, l12);
fhEMCDispersion[mcEta] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcEta]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcEta]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcEta]->Fill(e2, l02 );
}//eta
else if ( GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCConversion) &&
- GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCPhoton) ){
- fhEMCLambda0[mcConversion] ->Fill(e2, l02);
- fhEMCLambda1[mcConversion] ->Fill(e2, l12);
- fhEMCDispersion[mcConversion] ->Fill(e2, disp2);
+ GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCPhoton) ){
+ fhEMCLambda0[mcConversion] ->Fill(e2, l02);
+ fhEMCLambda1[mcConversion] ->Fill(e2, l12);
+ fhEMCDispersion[mcConversion] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcConversion]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcConversion]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcConversion]->Fill(e2, l02 );
}//conversion photon
else if( GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCPhoton) ){
- fhEMCLambda0[mcPhoton] ->Fill(e2, l02);
- fhEMCLambda1[mcPhoton] ->Fill(e2, l12);
- fhEMCDispersion[mcPhoton] ->Fill(e2, disp2);
+ fhEMCLambda0[mcPhoton] ->Fill(e2, l02);
+ fhEMCLambda1[mcPhoton] ->Fill(e2, l12);
+ fhEMCDispersion[mcPhoton] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcPhoton]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcPhoton]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcPhoton]->Fill(e2, l02 );
}//photon no conversion
else if ( GetMCAnalysisUtils()->CheckTagBit(tag2,AliMCAnalysisUtils::kMCElectron)){
fhEMCLambda0[mcElectron] ->Fill(e2, l02);
fhEMCLambda1[mcElectron] ->Fill(e2, l12);
fhEMCDispersion[mcElectron] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcElectron]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcElectron]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcElectron]->Fill(e2, l02 );
}//electron
else {
fhEMCLambda0[mcHadron] ->Fill(e2, l02);
fhEMCLambda1[mcHadron] ->Fill(e2, l12);
fhEMCDispersion[mcHadron] ->Fill(e2, disp2);
+ fhEMCFracMaxCell[mcHadron]->Fill(e2,maxCellFraction2);
+ if(fCalorimeter=="EMCAL" && GetModuleNumber(cluster2) < 6)
+ fhEMCLambda0NoTRD[mcHadron]->Fill(e2, l02 );
+ if(maxCellFraction2 < 0.5)
+ fhEMCLambda0FracMaxCellCut[mcHadron]->Fill(e2, l02 );
}//other particles
}//is datamc
}//MC histograms
//if(photon1->GetInputFileIndex() == photon2->GetInputFileIndex()) input = photon1->GetInputFileIndex();
//Select good pair (good phi, pt cuts, aperture and invariant mass)
- if(GetNeutralMesonSelection()->SelectPair(mom1, mom2)){
+ if(GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter)){
if(GetDebug() > 1) printf("AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS() - Selected gamma pair: pt %f, phi %f, eta%f\n",(mom1+mom2).Pt(), (mom1+mom2).Phi()*180./3.1416, (mom1+mom2).Eta());
if(IsDataMC()){