]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx
new method to reject events triggered by clusters from other BC
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaPi0EbE.cxx
index d06d85b88e83efd823758bfa1293519efde5758f..6fd6309a92d3b913dd3c74cdb52c91c2e356cd66 100755 (executable)
@@ -55,17 +55,22 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
     fRejectTrackMatch(kTRUE),
     fFillPileUpHistograms(0),
     fFillWeightHistograms(kFALSE), fFillTMHisto(0),              
-    fFillSelectClHisto(0),         fFillOnlySimpleSSHisto(1),
+    fFillSelectClHisto(0),         fFillOnlySimpleSSHisto(1),    fFillEMCALBCHistograms(0),
     fInputAODGammaConvName(""),
     // Histograms
     fhPt(0),                       fhE(0),                    
-    fhEEta(0),                     fhEPhi(0),                    fhEtaPhi(0),
+    fhEEta(0),                     fhEPhi(0),                    
+    fhPtEta(0),                    fhPtPhi(0),                   fhEtaPhi(0),
+    fhEtaPhiEMCALBC0(0),           fhEtaPhiEMCALBC1(0),          fhEtaPhiEMCALBCN(0),
     fhPtCentrality(),              fhPtEventPlane(0),
     fhPtReject(0),                 fhEReject(0),
     fhEEtaReject(0),               fhEPhiReject(0),              fhEtaPhiReject(0),
-    fhMass(0),                     fhAsymmetry(0), 
-    fhSelectedMass(0),             fhSelectedAsymmetry(0),
+    fhMass(0),                     fhMassPt(0),                  fhMassSplitPt(0),
+    fhSelectedMass(0),             fhSelectedMassPt(0),          fhSelectedMassSplitPt(0),
+    fhAsymmetry(0),                fhSelectedAsymmetry(0),
     fhSplitE(0),                   fhSplitPt(0),
+    fhSplitPtEta(0),               fhSplitPtPhi(0),
+    fhNLocMaxSplitPt(0),
     fhPtDecay(0),                  fhEDecay(0),
     // Shower shape histos
     fhEDispersion(0),              fhELambda0(0),                fhELambda1(0), 
@@ -95,7 +100,7 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
     fhTrackMatchedMCParticleDEta(0), fhTrackMatchedMCParticleDPhi(0),
     fhdEdx(0),                     fhEOverP(0),                 fhEOverPNoTRD(0),
     // Number of local maxima in cluster
-    fhNLocMax(0),
+    fhNLocMaxE(0),                 fhNLocMaxPt(0),
     // PileUp
     fhTimeENoCut(0),                    fhTimeESPD(0),           fhTimeESPDMulti(0),
     fhTimeNPileUpVertSPD(0),            fhTimeNPileUpVertTrack(0),
@@ -108,12 +113,16 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
   {
     fhMCE              [i] = 0;
     fhMCPt             [i] = 0;
-    fhMCPhi            [i] = 0;                   
+    fhMCNLocMaxPt      [i] = 0;
+    fhMCPhi            [i] = 0;
     fhMCEta            [i] = 0;
     fhMCPtCentrality   [i] = 0;
     
     fhMCSplitE         [i] = 0;
     fhMCSplitPt        [i] = 0;
+    fhMCSplitPtPhi     [i] = 0;
+    fhMCSplitPtEta     [i] = 0;
+    fhMCNLocMaxSplitPt [i] = 0;
     
     fhEMCLambda0       [i] = 0;
     fhEMCLambda0NoTRD  [i] = 0;
@@ -129,6 +138,11 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
     fhMCESphericity    [i] = 0;    
     fhMCEAsymmetry     [i] = 0;          
 
+    fhMCMassPt             [i]=0;
+    fhMCMassSplitPt        [i]=0;
+    fhMCSelectedMassPt     [i]=0;
+    fhMCSelectedMassSplitPt[i]=0;
+    
     for(Int_t j = 0; j < 7; j++)
     {    
       fhMCLambda0DispEta    [j][i] = 0;
@@ -172,6 +186,12 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
     if(i<8)fhMassPairLocMax[i] = 0;
   }
   
+  for(Int_t i = 0; i < 12; i++)
+  {
+    fhEtaPhiTriggerEMCALBC[i] = 0 ;
+    fhTimeTriggerEMCALBC  [i] = 0 ;
+  }
+  
   //Initialize parameters
   InitParameters();
   
@@ -351,7 +371,7 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster,
     }
   }  
   
-  fhNLocMax->Fill(e,nMaxima);
+  fhNLocMaxE ->Fill(e ,nMaxima);
 
   fhELambda0LocMax   [indexMax]->Fill(e,l0); 
   fhELambda1LocMax   [indexMax]->Fill(e,l1);
@@ -666,6 +686,18 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   fhEEta->SetYTitle("#eta");
   fhEEta->SetXTitle("E (GeV)");
   outputContainer->Add(fhEEta) ; 
+
+  fhPtPhi  = new TH2F
+  ("hPtPhi","Selected #pi^{0} (#eta) pairs: p_{T} vs #phi",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
+  fhPtPhi->SetYTitle("#phi (rad)");
+  fhPtPhi->SetXTitle("p_{T} (GeV/c)");
+  outputContainer->Add(fhPtPhi) ;
+  
+  fhPtEta  = new TH2F
+  ("hPtEta","Selected #pi^{0} (#eta) pairs: p_{T} vs #eta",nptbins,ptmin,ptmax,netabins,etamin,etamax);
+  fhPtEta->SetYTitle("#eta");
+  fhPtEta->SetXTitle("p_{T} (GeV/c)");
+  outputContainer->Add(fhPtEta) ;
   
   fhEtaPhi  = new TH2F
   ("hEtaPhi","Selected #pi^{0} (#eta) pairs: #eta vs #phi",netabins,etamin,etamax, nphibins,phimin,phimax); 
@@ -673,6 +705,54 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   fhEtaPhi->SetXTitle("#eta");
   outputContainer->Add(fhEtaPhi) ; 
   
+  if(fCalorimeter=="EMCAL" && fFillEMCALBCHistograms)
+  {
+    fhEtaPhiEMCALBC0  = new TH2F
+    ("hEtaPhiEMCALBC0","cluster,E > 2 GeV, #eta vs #phi, for clusters with |time| < 25 ns, EMCAL-BC=0",netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiEMCALBC0->SetYTitle("#phi (rad)");
+    fhEtaPhiEMCALBC0->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiEMCALBC0) ;
+    
+    fhEtaPhiEMCALBC1  = new TH2F
+    ("hEtaPhiEMCALBC1","cluster,E > 2 GeV, #eta vs #phi, for clusters with 25 < |time| < 75 ns, EMCAL-BC=1",netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiEMCALBC1->SetYTitle("#phi (rad)");
+    fhEtaPhiEMCALBC1->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiEMCALBC1) ;
+    
+    fhEtaPhiEMCALBCN  = new TH2F
+    ("hEtaPhiEMCALBCN","cluster,E > 2 GeV, #eta vs #phi, for clusters with |time| > 75 ns, EMCAL-BC>1",netabins,etamin,etamax,nphibins,phimin,phimax);
+    fhEtaPhiEMCALBCN->SetYTitle("#phi (rad)");
+    fhEtaPhiEMCALBCN->SetXTitle("#eta");
+    outputContainer->Add(fhEtaPhiEMCALBCN) ;
+    
+    for(Int_t i = 0; i < 12; i++)
+    {
+      fhEtaPhiTriggerEMCALBC[i] = new TH2F
+      (Form("hEtaPhiTriggerEMCALBC%d",i-5),
+       Form("cluster,E > 2 GeV, #eta vs #phi, Trigger EMCAL-BC=%d",i-5),
+       netabins,etamin,etamax,nphibins,phimin,phimax);
+      fhEtaPhiTriggerEMCALBC[i]->SetYTitle("#phi (rad)");
+      fhEtaPhiTriggerEMCALBC[i]->SetXTitle("#eta");
+      outputContainer->Add(fhEtaPhiTriggerEMCALBC[i]) ;
+      
+      fhTimeTriggerEMCALBC[i] = new TH2F
+      (Form("hTimeTriggerEMCALBC%d",i-5),
+       Form("time of cluster vs E of clusters, Trigger EMCAL-BC=%d",i-5),
+       nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+      fhTimeTriggerEMCALBC[i]->SetXTitle("E (GeV)");
+      fhTimeTriggerEMCALBC[i]->SetYTitle("time (ns)");
+      outputContainer->Add(fhTimeTriggerEMCALBC[i]);
+      
+      fhTimeTriggerEMCALBCPileUpSPD[i] = new TH2F
+      (Form("hTimeTriggerEMCALBC%dPileUpSPD",i-5),
+       Form("time of cluster vs E of clusters, Trigger EMCAL-BC=%d",i-5),
+       nptbins,ptmin,ptmax, ntimebins,timemin,timemax);
+      fhTimeTriggerEMCALBCPileUpSPD[i]->SetXTitle("E (GeV)");
+      fhTimeTriggerEMCALBCPileUpSPD[i]->SetYTitle("time (ns)");
+      outputContainer->Add(fhTimeTriggerEMCALBCPileUpSPD[i]);
+    }
+  }
+  
   fhPtCentrality  = new TH2F("hPtCentrality","centrality vs p_{T}",nptbins,ptmin,ptmax, 100,0,100);
   fhPtCentrality->SetYTitle("centrality");
   fhPtCentrality->SetXTitle("p_{T}(GeV/c)");
@@ -725,7 +805,19 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   fhSelectedMass->SetYTitle("mass (GeV/c^{2})");
   fhSelectedMass->SetXTitle("E (GeV)");
   outputContainer->Add(fhSelectedMass) ; 
-  
+
+  fhMassPt  = new TH2F
+  ("hMassPt","all pairs mass: p_{T} vs mass",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+  fhMassPt->SetYTitle("mass (GeV/c^{2})");
+  fhMassPt->SetXTitle("p_{T} (GeV/c)");
+  outputContainer->Add(fhMassPt) ;
+  
+  fhSelectedMassPt  = new TH2F
+  ("hSelectedMassPt","Selected #pi^{0} (#eta) pairs mass: p_{T} vs mass",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+  fhSelectedMassPt->SetYTitle("mass (GeV/c^{2})");
+  fhSelectedMassPt->SetXTitle("p_{T} (GeV/c)");
+  outputContainer->Add(fhSelectedMassPt) ;
+
   if(fAnaType != kSSCalo)
   {
     fhPtDecay  = new TH1F("hPtDecay","Number of identified  #pi^{0} (#eta) decay photons",nptbins,ptmin,ptmax); 
@@ -853,11 +945,20 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
       }
     }    
     
-    fhNLocMax = new TH2F("hNLocMax","Number of local maxima in cluster",
-                         nptbins,ptmin,ptmax,10,0,10); 
-    fhNLocMax ->SetYTitle("N maxima");
-    fhNLocMax ->SetXTitle("E (GeV)");
-    outputContainer->Add(fhNLocMax) ;  
+    fhNLocMaxE = new TH2F("hNLocMaxE","Number of local maxima in cluster",
+                          nptbins,ptmin,ptmax,10,0,10);
+    fhNLocMaxE ->SetYTitle("N maxima");
+    fhNLocMaxE ->SetXTitle("E (GeV)");
+    outputContainer->Add(fhNLocMaxE) ;
+    
+    if(fAnaType == kSSCalo)
+    {
+      fhNLocMaxPt = new TH2F("hNLocMaxPt","Number of local maxima in cluster",
+                            nptbins,ptmin,ptmax,10,0,10);
+      fhNLocMaxPt ->SetYTitle("N maxima");
+      fhNLocMaxPt ->SetXTitle("p_{T} (GeV/c)");
+      outputContainer->Add(fhNLocMaxPt) ;
+    }
     
     for (Int_t i = 0; i < 3; i++) 
     {
@@ -1223,6 +1324,15 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
         
         if(fAnaType == kSSCalo)
         {
+          
+          fhMCNLocMaxPt[i] = new TH2F
+          (Form("hNLocMaxPt_MC%s",pname[i].Data()),
+           Form("cluster from %s, pT of cluster, for NLM",ptype[i].Data()),
+           nptbins,ptmin,ptmax,10,0,10);
+          fhMCNLocMaxPt[i] ->SetYTitle("N maxima");
+          fhMCNLocMaxPt[i] ->SetXTitle("p_{T} (GeV/c)");
+          outputContainer->Add(fhMCNLocMaxPt[i]) ;
+
           fhMCEReject[i]  = new TH1F
           (Form("hEReject_MC%s",pname[i].Data()),
            Form("Rejected as #pi^{0} (#eta), cluster from %s",
@@ -1257,7 +1367,23 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
         fhMCEta[i]->SetYTitle("#eta");
         fhMCEta[i]->SetXTitle("p_{T} (GeV/c)");
         outputContainer->Add(fhMCEta[i]) ;
+
+        fhMCMassPt[i]  = new TH2F
+        (Form("hMassPt_MC%s",pname[i].Data()),
+         Form("all pairs mass: p_{T} vs massfrom %s",ptype[i].Data()),
+         nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+        fhMCMassPt[i]->SetYTitle("mass (GeV/c^{2})");
+        fhMCMassPt[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCMassPt[i]) ;
         
+        fhMCSelectedMassPt[i]  = new TH2F
+        (Form("hSelectedMassPt_MC%s",pname[i].Data()),
+         Form("Selected #pi^{0} (#eta) pairs mass: p_{T} vs massfrom %s",ptype[i].Data()),
+         nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+        fhMCSelectedMassPt[i]->SetYTitle("mass (GeV/c^{2})");
+        fhMCSelectedMassPt[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCSelectedMassPt[i]) ;
+
         
         if( fFillSelectClHisto )
         {
@@ -1401,6 +1527,41 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
     fhSplitPt->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhSplitPt) ;
     
+    
+    fhSplitPtPhi  = new TH2F
+    ("hSplitPtPhi","Selected #pi^{0} (#eta) pairs: sum split sub-cluster p_{T} vs #phi",nptbins,ptmin,ptmax, nphibins,phimin,phimax);
+    fhSplitPtPhi->SetYTitle("#phi (rad)");
+    fhSplitPtPhi->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhSplitPtPhi) ;
+    
+    fhSplitPtEta  = new TH2F
+    ("hSplitPtEta","Selected #pi^{0} (#eta) pairs: sum split sub-cluster p_{T} vs #eta",nptbins,ptmin,ptmax,netabins,etamin,etamax);
+    fhSplitPtEta->SetYTitle("#eta");
+    fhSplitPtEta->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhSplitPtEta) ;
+
+    
+    fhNLocMaxSplitPt = new TH2F("hNLocMaxSplitPt","Number of local maxima in cluster",
+                         nptbins,ptmin,ptmax,10,0,10);
+    fhNLocMaxSplitPt ->SetYTitle("N maxima");
+    fhNLocMaxSplitPt ->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhNLocMaxSplitPt) ;
+
+    
+    fhMassSplitPt  = new TH2F
+    ("hMassSplitPt","all pairs mass: sum split sub-cluster p_{T} vs mass",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+    fhMassSplitPt->SetYTitle("mass (GeV/c^{2})");
+    fhMassSplitPt->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhMassSplitPt) ;
+    
+    fhSelectedMassSplitPt  = new TH2F
+    ("hSelectedMassSplitPt","Selected #pi^{0} (#eta) pairs mass: sum split sub-cluster p_{T} vs mass",nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+    fhSelectedMassSplitPt->SetYTitle("mass (GeV/c^{2})");
+    fhSelectedMassSplitPt->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhSelectedMassSplitPt) ;
+    
+
+    
     if(IsDataMC())
     {
       for(Int_t i = 0; i< 6; i++)
@@ -1428,6 +1589,48 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
         fhMCSplitPt[i]->SetXTitle("p_{T} (GeV/c)");
         outputContainer->Add(fhMCSplitPt[i]) ;
         
+        
+        fhMCSplitPtPhi[i]  = new TH2F
+        (Form("hSplitPtPhi_MC%s",pname[i].Data()),
+         Form("Identified as #pi^{0} (#eta), cluster from %s",ptype[i].Data()),
+         nptbins,ptmin,ptmax,nphibins,phimin,phimax);
+        fhMCSplitPtPhi[i]->SetYTitle("#phi");
+        fhMCSplitPtPhi[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCSplitPtPhi[i]) ;
+        
+        fhMCSplitPtEta[i]  = new TH2F
+        (Form("hSplitPtEta_MC%s",pname[i].Data()),
+         Form("Identified as #pi^{0} (#eta), cluster from %s",
+              ptype[i].Data()),nptbins,ptmin,ptmax,netabins,etamin,etamax);
+        fhMCSplitPtEta[i]->SetYTitle("#eta");
+        fhMCSplitPtEta[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCSplitPtEta[i]) ;
+
+        
+        fhMCNLocMaxSplitPt[i] = new TH2F
+        (Form("hNLocMaxSplitPt_MC%s",pname[i].Data()),
+         Form("cluster from %s, pT sum of split sub-clusters, for NLM",ptype[i].Data()),
+         nptbins,ptmin,ptmax,10,0,10);
+        fhMCNLocMaxSplitPt[i] ->SetYTitle("N maxima");
+        fhMCNLocMaxSplitPt[i] ->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCNLocMaxSplitPt[i]) ;
+        
+        fhMCMassSplitPt[i]  = new TH2F
+        (Form("hMassSplitPt_MC%s",pname[i].Data()),
+         Form("all pairs mass: split p_{T} vs mass from %s",ptype[i].Data()),
+         nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+        fhMCMassSplitPt[i]->SetYTitle("mass (GeV/c^{2})");
+        fhMCMassSplitPt[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCMassSplitPt[i]) ;
+        
+        fhMCSelectedMassSplitPt[i]  = new TH2F
+        (Form("hSelectedMassSplitPt_MC%s",pname[i].Data()),
+         Form("Selected #pi^{0} (#eta) pairs mass: split p_{T} vs mass from %s",ptype[i].Data()),
+         nptbins,ptmin,ptmax, nmassbins,massmin,massmax);
+        fhMCSelectedMassSplitPt[i]->SetYTitle("mass (GeV/c^{2})");
+        fhMCSelectedMassSplitPt[i]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhMCSelectedMassSplitPt[i]) ;
+        
       } 
     }
   }
@@ -2196,19 +2399,33 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
     if(GetDebug() > 1)
       printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - NLM %d accepted \n",nMaxima);
     
+    Float_t e1 = l1.Energy();
+    Float_t e2 = l2.Energy();
+    TLorentzVector l12 = l1+l2;
+    Float_t ptSplit = l12.Pt();
+    Float_t  eSplit = e1+e2;
+    Int_t mcIndex = GetMCIndex(tag);
+
     //mass of all clusters
-    fhMass->Fill(mom.E(),mass);
+    fhMass       ->Fill(mom.E(),mass);
+    fhMassPt     ->Fill(mom.Pt(),mass);
+    fhMassSplitPt->Fill(ptSplit,mass);
+
+    if(IsDataMC())
+    {
+      fhMCMassPt[mcIndex]     ->Fill(mom.Pt(),mass);
+      fhMCMassSplitPt[mcIndex]->Fill(ptSplit,mass);
+    }
 
     // Asymmetry of all clusters
     Float_t asy =-10;
-    Float_t e1 = l1.Energy();
-    Float_t e2 = l2.Energy();
+
     if(e1+e2 > 0) asy = (e1-e2) / (e1+e2);
     fhAsymmetry->Fill(mom.E(),asy);
 
+
     if(IsDataMC())
     {
-      Int_t mcIndex = GetMCIndex(tag);
       fhMCEAsymmetry[mcIndex]->Fill(mom.E(),asy);
     }
     
@@ -2232,14 +2449,19 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
                               mom.Pt(), idPartType);
     
     //Mass and asymmetry of selected pairs
-    fhSelectedAsymmetry->Fill(mom.E(),asy);
-    fhSelectedMass     ->Fill(mom.E(),mass);
+    fhSelectedAsymmetry  ->Fill(mom.E() ,asy );
+    fhSelectedMass       ->Fill(mom.E() ,mass);
+    fhSelectedMassPt     ->Fill(mom.Pt(),mass);
+    fhSelectedMassSplitPt->Fill(ptSplit ,mass);
 
-    TLorentzVector l12 = l1+l2;
-    Float_t ptSplit = l12.Pt();
-    Float_t  eSplit = e1+e2;
-    fhSplitE   ->Fill( eSplit);
-    fhSplitPt  ->Fill(ptSplit);
+    fhSplitE        ->Fill( eSplit);
+    fhSplitPt       ->Fill(ptSplit);
+    Float_t phi = mom.Phi();
+    if(phi<0) phi+=TMath::TwoPi();
+    fhSplitPtPhi    ->Fill(ptSplit,phi);
+    fhSplitPtEta    ->Fill(ptSplit,mom.Eta());
+    fhNLocMaxSplitPt->Fill(ptSplit ,nMaxima);
+    fhNLocMaxPt     ->Fill(mom.Pt(),nMaxima);
 
     //Check split-clusters with good time window difference
     Double_t tof1  = cells->GetCellTime(absId1);
@@ -2255,11 +2477,17 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
     
     if(IsDataMC())
     {
-      Int_t mcIndex = GetMCIndex(tag);
-      fhMCSplitE    [mcIndex]->Fill( eSplit);
-      fhMCSplitPt   [mcIndex]->Fill(ptSplit);
-    }
+      fhMCSplitE        [mcIndex]->Fill( eSplit);
+      fhMCSplitPt       [mcIndex]->Fill(ptSplit);
+      fhMCSplitPtPhi    [mcIndex]->Fill(ptSplit,phi);
+      fhMCSplitPtEta    [mcIndex]->Fill(ptSplit,mom.Eta());
+      fhMCNLocMaxSplitPt[mcIndex]->Fill(ptSplit ,nMaxima);
+      fhMCNLocMaxPt     [mcIndex]->Fill(mom.Pt(),nMaxima);
+      
+      fhMCSelectedMassPt     [mcIndex]->Fill(mom.Pt(),mass);
+      fhMCSelectedMassSplitPt[mcIndex]->Fill(ptSplit,mass);
 
+    }
     
     //-----------------------
     //Create AOD for analysis
@@ -2291,7 +2519,32 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
     
     // Fill histograms to undertand pile-up before other cuts applied
     // Remember to relax time cuts in the reader
-    FillPileUpHistograms(calo->E(),calo->GetTOF()*1e9);
+    Double_t tofcluster   = calo->GetTOF()*1e9;
+    Double_t tofclusterUS = TMath::Abs(tofcluster);
+
+    FillPileUpHistograms(calo->E(),tofcluster);
+    if(fFillEMCALBCHistograms && fCalorimeter=="EMCAL")
+    {
+      Float_t phicluster = aodpi0.Phi();
+      if(phicluster < 0) phicluster+=TMath::TwoPi();
+      
+      if(calo->E() > 2)
+      {
+        if      (tofclusterUS < 25) fhEtaPhiEMCALBC0->Fill(aodpi0.Eta(), phicluster);
+        else if (tofclusterUS < 75) fhEtaPhiEMCALBC1->Fill(aodpi0.Eta(), phicluster);
+        else                        fhEtaPhiEMCALBCN->Fill(aodpi0.Eta(), phicluster);
+      }
+      
+      Int_t bc = GetReader()->IsPileUpClusterTriggeredEvent();
+      if(bc > -7 && bc < 8)
+      {
+        if(calo->E() > 2) fhEtaPhiTriggerEMCALBC[bc+5]->Fill(aodpi0.Eta(), phicluster);
+        fhTimeTriggerEMCALBC[bc+5]->Fill(calo->E(), tofcluster);
+        if(GetReader()->IsPileUpFromSPD()) fhTimeTriggerEMCALBCPileUpSPD[bc+5]->Fill(calo->E(), tofcluster);
+      }
+      else printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - Trigger BC not expected = %d\n",bc);
+    }
     
     //Add AOD with pi0 object to aod branch
     AddAODParticle(aodpi0);
@@ -2338,6 +2591,8 @@ void  AliAnaPi0EbE::MakeAnalysisFillHistograms()
     
     fhEEta   ->Fill(ener,eta);
     fhEPhi   ->Fill(ener,phi);
+    fhPtEta  ->Fill(pt  ,eta);
+    fhPtPhi  ->Fill(pt  ,phi);
     fhEtaPhi ->Fill(eta ,phi);
 
     fhPtCentrality ->Fill(pt,cen) ;