]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Reduce the number of histograms in case of SS plotting option is on, if it is requested
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 20 Jul 2012 13:48:14 +0000 (13:48 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 20 Jul 2012 13:48:14 +0000 (13:48 +0000)
Add some new MC related histograms in several classes
Electron analysis produces now electron or calorimeter hadron AOD to be used in isolation and correlation

PWGGA/CaloTrackCorrelations/AliAnaElectron.cxx
PWGGA/CaloTrackCorrelations/AliAnaElectron.h
PWGGA/CaloTrackCorrelations/AliAnaGeneratorKine.h
PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.cxx
PWGGA/CaloTrackCorrelations/AliAnaParticleHadronCorrelation.h
PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.cxx
PWGGA/CaloTrackCorrelations/AliAnaParticleIsolation.h
PWGGA/CaloTrackCorrelations/AliAnaPhoton.cxx
PWGGA/CaloTrackCorrelations/AliAnaPhoton.h
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h

index 155db1b86ec2f59e1b666d014c596eb47fdb2605..532d439dd348ec115a9777664f1ea7489b01f254 100755 (executable)
@@ -50,13 +50,14 @@ ClassImp(AliAnaElectron)
   
 //________________________________
 AliAnaElectron::AliAnaElectron() : 
-    AliAnaCaloTrackCorrBaseClass(),            fCalorimeter(""), 
+    AliAnaCaloTrackCorrBaseClass(),       fCalorimeter(""), 
     fMinDist(0.),                         fMinDist2(0.),                         fMinDist3(0.), 
     fTimeCutMin(-1),                      fTimeCutMax(999999),         
-    fNCellsCut(0),                        fFillSSHistograms(kFALSE),             
+    fNCellsCut(0),                        fFillSSHistograms(kFALSE),             fFillOnlySimpleSSHisto(1),        
     fFillWeightHistograms(kFALSE),        fNOriginHistograms(8), 
     fdEdxMin(0.),                         fdEdxMax (200.), 
     fEOverPMin(0),                        fEOverPMax (2),
+    fAODParticle(0),
     // Histograms
     fhdEdxvsE(0),                         fhdEdxvsP(0),                 
     fhEOverPvsE(0),                       fhEOverPvsP(0),
@@ -225,6 +226,10 @@ void  AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_
   Float_t lambda1 = cluster->GetM20();
   Float_t disp    = cluster->GetDispersion()*cluster->GetDispersion();
   
+  Float_t l0   = 0., l1   = 0.;
+  Float_t dispp= 0., dEta = 0., dPhi    = 0.; 
+  Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;    
+  
   TLorentzVector mom;
   if(GetReader()->GetDataType() != AliCaloTrackReader::kMC)
   {
@@ -249,40 +254,40 @@ void  AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_
     fhDispETRD[pidIndex]->Fill(energy,disp);
   }
   
-  if(energy < 2)
+  if(!fFillOnlySimpleSSHisto)
   {
-    fhNCellsLam0LowE[pidIndex] ->Fill(ncells,lambda0);
-    fhEtaLam0LowE[pidIndex]    ->Fill(eta,   lambda0);
-    fhPhiLam0LowE[pidIndex]    ->Fill(phi,   lambda0);
-  }
-  else 
-  {
-    fhNCellsLam0HighE[pidIndex]->Fill(ncells,lambda0);
-    fhEtaLam0HighE[pidIndex]   ->Fill(eta,   lambda0);
-    fhPhiLam0HighE[pidIndex]   ->Fill(phi,   lambda0);
-  }
-    
-  Float_t l0   = 0., l1   = 0.;
-  Float_t dispp= 0., dEta = 0., dPhi    = 0.; 
-  Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;  
-  if(fCalorimeter == "EMCAL")
-  {
-    GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
-                                                                                 l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
-    fhDispEtaE        [pidIndex]-> Fill(energy,dEta);
-    fhDispPhiE        [pidIndex]-> Fill(energy,dPhi);
-    fhSumEtaE         [pidIndex]-> Fill(energy,sEta);
-    fhSumPhiE         [pidIndex]-> Fill(energy,sPhi);
-    fhSumEtaPhiE      [pidIndex]-> Fill(energy,sEtaPhi);
-    fhDispEtaPhiDiffE [pidIndex]-> Fill(energy,dPhi-dEta);
-    if(dEta+dPhi>0)fhSphericityE     [pidIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi));
-    
-    if      (energy < 2 ) fhDispEtaDispPhiEBin[pidIndex][0]->Fill(dEta,dPhi);
-    else if (energy < 4 ) fhDispEtaDispPhiEBin[pidIndex][1]->Fill(dEta,dPhi);
-    else if (energy < 6 ) fhDispEtaDispPhiEBin[pidIndex][2]->Fill(dEta,dPhi);
-    else if (energy < 10) fhDispEtaDispPhiEBin[pidIndex][3]->Fill(dEta,dPhi);
-    else                  fhDispEtaDispPhiEBin[pidIndex][4]->Fill(dEta,dPhi);
+    if(energy < 2)
+    {
+      fhNCellsLam0LowE[pidIndex] ->Fill(ncells,lambda0);
+      fhEtaLam0LowE[pidIndex]    ->Fill(eta,   lambda0);
+      fhPhiLam0LowE[pidIndex]    ->Fill(phi,   lambda0);
+    }
+    else 
+    {
+      fhNCellsLam0HighE[pidIndex]->Fill(ncells,lambda0);
+      fhEtaLam0HighE[pidIndex]   ->Fill(eta,   lambda0);
+      fhPhiLam0HighE[pidIndex]   ->Fill(phi,   lambda0);
+    }
     
+    if(fCalorimeter == "EMCAL")
+    {
+      GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
+                                                                                   l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
+      fhDispEtaE        [pidIndex]-> Fill(energy,dEta);
+      fhDispPhiE        [pidIndex]-> Fill(energy,dPhi);
+      fhSumEtaE         [pidIndex]-> Fill(energy,sEta);
+      fhSumPhiE         [pidIndex]-> Fill(energy,sPhi);
+      fhSumEtaPhiE      [pidIndex]-> Fill(energy,sEtaPhi);
+      fhDispEtaPhiDiffE [pidIndex]-> Fill(energy,dPhi-dEta);
+      if(dEta+dPhi>0)fhSphericityE     [pidIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi));
+      
+      if      (energy < 2 ) fhDispEtaDispPhiEBin[pidIndex][0]->Fill(dEta,dPhi);
+      else if (energy < 4 ) fhDispEtaDispPhiEBin[pidIndex][1]->Fill(dEta,dPhi);
+      else if (energy < 6 ) fhDispEtaDispPhiEBin[pidIndex][2]->Fill(dEta,dPhi);
+      else if (energy < 10) fhDispEtaDispPhiEBin[pidIndex][3]->Fill(dEta,dPhi);
+      else                  fhDispEtaDispPhiEBin[pidIndex][4]->Fill(dEta,dPhi);
+      
+    }
   }
   
   if(IsDataMC())
@@ -401,7 +406,7 @@ void  AliAnaElectron::FillShowerShapeHistograms(AliVCluster* cluster, const Int_
     
     fhMCELambda0[pidIndex][index]    ->Fill(energy, lambda0);
     
-    if(fCalorimeter == "EMCAL")
+    if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
     {
       fhMCEDispEta        [pidIndex][index]-> Fill(energy,dEta);
       fhMCEDispPhi        [pidIndex][index]-> Fill(energy,dPhi);
@@ -585,112 +590,115 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
         outputContainer->Add(fhDispETRD[pidIndex]);   
       } 
       
-      fhNCellsLam0LowE[pidIndex]  = new TH2F (Form("h%sNCellsLam0LowE",pidParticle[pidIndex].Data()),
-                                              Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()),
-                                              nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-      fhNCellsLam0LowE[pidIndex]->SetXTitle("N_{cells}");
-      fhNCellsLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      outputContainer->Add(fhNCellsLam0LowE[pidIndex]);  
-      
-      fhNCellsLam0HighE[pidIndex]  = new TH2F (Form("h%sNCellsLam0HighE",pidParticle[pidIndex].Data()),
-                                               Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), 
-                                               nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-      fhNCellsLam0HighE[pidIndex]->SetXTitle("N_{cells}");
-      fhNCellsLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      outputContainer->Add(fhNCellsLam0HighE[pidIndex]);  
-      
-      
-      fhEtaLam0LowE[pidIndex]  = new TH2F (Form("h%sEtaLam0LowE",pidParticle[pidIndex].Data()),
-                                           Form("%s: #eta vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), 
-                                           netabins,etamin,etamax, ssbins,ssmin,ssmax); 
-      fhEtaLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      fhEtaLam0LowE[pidIndex]->SetXTitle("#eta");
-      outputContainer->Add(fhEtaLam0LowE[pidIndex]);  
-      
-      fhPhiLam0LowE[pidIndex]  = new TH2F (Form("h%sPhiLam0LowE",pidParticle[pidIndex].Data()),
-                                           Form("%s: #phi vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), 
-                                           nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
-      fhPhiLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      fhPhiLam0LowE[pidIndex]->SetXTitle("#phi");
-      outputContainer->Add(fhPhiLam0LowE[pidIndex]);  
-      
-      fhEtaLam0HighE[pidIndex]  = new TH2F (Form("h%sEtaLam0HighE",pidParticle[pidIndex].Data()),
-                                            Form("%s: #eta vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()),
-                                            netabins,etamin,etamax, ssbins,ssmin,ssmax); 
-      fhEtaLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      fhEtaLam0HighE[pidIndex]->SetXTitle("#eta");
-      outputContainer->Add(fhEtaLam0HighE[pidIndex]);  
-      
-      fhPhiLam0HighE[pidIndex]  = new TH2F (Form("h%sPhiLam0HighE",pidParticle[pidIndex].Data()),
-                                            Form("%s: #phi vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), 
-                                            nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
-      fhPhiLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
-      fhPhiLam0HighE[pidIndex]->SetXTitle("#phi");
-      outputContainer->Add(fhPhiLam0HighE[pidIndex]);  
-      
-      if(fCalorimeter == "EMCAL")
+      if(!fFillOnlySimpleSSHisto)
       {
-        fhDispEtaE[pidIndex]  = new TH2F (Form("h%sDispEtaE",pidParticle[pidIndex].Data()),
-                                          Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",pidParticle[pidIndex].Data()),  
-                                          nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-        fhDispEtaE[pidIndex]->SetXTitle("E (GeV)");
-        fhDispEtaE[pidIndex]->SetYTitle("#sigma^{2}_{#eta #eta}");
-        outputContainer->Add(fhDispEtaE[pidIndex]);     
         
-        fhDispPhiE[pidIndex]  = new TH2F (Form("h%sDispPhiE",pidParticle[pidIndex].Data()),
-                                          Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",pidParticle[pidIndex].Data()),  
-                                          nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-        fhDispPhiE[pidIndex]->SetXTitle("E (GeV)");
-        fhDispPhiE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}");
-        outputContainer->Add(fhDispPhiE[pidIndex]);  
+        fhNCellsLam0LowE[pidIndex]  = new TH2F (Form("h%sNCellsLam0LowE",pidParticle[pidIndex].Data()),
+                                                Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()),
+                                                nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+        fhNCellsLam0LowE[pidIndex]->SetXTitle("N_{cells}");
+        fhNCellsLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        outputContainer->Add(fhNCellsLam0LowE[pidIndex]);  
+        
+        fhNCellsLam0HighE[pidIndex]  = new TH2F (Form("h%sNCellsLam0HighE",pidParticle[pidIndex].Data()),
+                                                 Form("%s: N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), 
+                                                 nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+        fhNCellsLam0HighE[pidIndex]->SetXTitle("N_{cells}");
+        fhNCellsLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        outputContainer->Add(fhNCellsLam0HighE[pidIndex]);  
         
-        fhSumEtaE[pidIndex]  = new TH2F (Form("h%sSumEtaE",pidParticle[pidIndex].Data()),
-                                         Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",pidParticle[pidIndex].Data()),  
-                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-        fhSumEtaE[pidIndex]->SetXTitle("E (GeV)");
-        fhSumEtaE[pidIndex]->SetYTitle("#delta^{2}_{#eta #eta}");
-        outputContainer->Add(fhSumEtaE[pidIndex]);     
         
-        fhSumPhiE[pidIndex]  = new TH2F (Form("h%sSumPhiE",pidParticle[pidIndex].Data()),
-                                         Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",pidParticle[pidIndex].Data()),  
-                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-        fhSumPhiE[pidIndex]->SetXTitle("E (GeV)");
-        fhSumPhiE[pidIndex]->SetYTitle("#delta^{2}_{#phi #phi}");
-        outputContainer->Add(fhSumPhiE[pidIndex]);  
+        fhEtaLam0LowE[pidIndex]  = new TH2F (Form("h%sEtaLam0LowE",pidParticle[pidIndex].Data()),
+                                             Form("%s: #eta vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), 
+                                             netabins,etamin,etamax, ssbins,ssmin,ssmax); 
+        fhEtaLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        fhEtaLam0LowE[pidIndex]->SetXTitle("#eta");
+        outputContainer->Add(fhEtaLam0LowE[pidIndex]);  
         
-        fhSumEtaPhiE[pidIndex]  = new TH2F (Form("h%sSumEtaPhiE",pidParticle[pidIndex].Data()),
-                                            Form("%s: #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",pidParticle[pidIndex].Data()),  
-                                            nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
-        fhSumEtaPhiE[pidIndex]->SetXTitle("E (GeV)");
-        fhSumEtaPhiE[pidIndex]->SetYTitle("#delta^{2}_{#eta #phi}");
-        outputContainer->Add(fhSumEtaPhiE[pidIndex]);
+        fhPhiLam0LowE[pidIndex]  = new TH2F (Form("h%sPhiLam0LowE",pidParticle[pidIndex].Data()),
+                                             Form("%s: #phi vs #lambda_{0}^{2}, E < 2 GeV",pidParticle[pidIndex].Data()), 
+                                             nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
+        fhPhiLam0LowE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        fhPhiLam0LowE[pidIndex]->SetXTitle("#phi");
+        outputContainer->Add(fhPhiLam0LowE[pidIndex]);  
         
-        fhDispEtaPhiDiffE[pidIndex]  = new TH2F (Form("h%sDispEtaPhiDiffE",pidParticle[pidIndex].Data()),
-                                                 Form("%s: #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",pidParticle[pidIndex].Data()), 
-                                                 nptbins,ptmin,ptmax,200, -10,10); 
-        fhDispEtaPhiDiffE[pidIndex]->SetXTitle("E (GeV)");
-        fhDispEtaPhiDiffE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
-        outputContainer->Add(fhDispEtaPhiDiffE[pidIndex]);    
+        fhEtaLam0HighE[pidIndex]  = new TH2F (Form("h%sEtaLam0HighE",pidParticle[pidIndex].Data()),
+                                              Form("%s: #eta vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()),
+                                              netabins,etamin,etamax, ssbins,ssmin,ssmax); 
+        fhEtaLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        fhEtaLam0HighE[pidIndex]->SetXTitle("#eta");
+        outputContainer->Add(fhEtaLam0HighE[pidIndex]);  
         
-        fhSphericityE[pidIndex]  = new TH2F (Form("h%sSphericityE",pidParticle[pidIndex].Data()),
-                                             Form("%s: (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",pidParticle[pidIndex].Data()),  
-                                             nptbins,ptmin,ptmax, 200, -1,1); 
-        fhSphericityE[pidIndex]->SetXTitle("E (GeV)");
-        fhSphericityE[pidIndex]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
-        outputContainer->Add(fhSphericityE[pidIndex]);
+        fhPhiLam0HighE[pidIndex]  = new TH2F (Form("h%sPhiLam0HighE",pidParticle[pidIndex].Data()),
+                                              Form("%s: #phi vs #lambda_{0}^{2}, E > 2 GeV",pidParticle[pidIndex].Data()), 
+                                              nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
+        fhPhiLam0HighE[pidIndex]->SetYTitle("#lambda_{0}^{2}");
+        fhPhiLam0HighE[pidIndex]->SetXTitle("#phi");
+        outputContainer->Add(fhPhiLam0HighE[pidIndex]);  
         
-        Int_t bin[] = {0,2,4,6,10,1000};
-        for(Int_t i = 0; i < 5; i++)
+        if(fCalorimeter == "EMCAL")
         {
-          fhDispEtaDispPhiEBin[pidIndex][i] = new TH2F (Form("h%sDispEtaDispPhi_EBin%d",pidParticle[pidIndex].Data(),i),
-                                                        Form("%s: #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pidParticle[pidIndex].Data(),bin[i],bin[i+1]), 
-                                                        ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-          fhDispEtaDispPhiEBin[pidIndex][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
-          fhDispEtaDispPhiEBin[pidIndex][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-          outputContainer->Add(fhDispEtaDispPhiEBin[pidIndex][i]); 
+          fhDispEtaE[pidIndex]  = new TH2F (Form("h%sDispEtaE",pidParticle[pidIndex].Data()),
+                                            Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",pidParticle[pidIndex].Data()),  
+                                            nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+          fhDispEtaE[pidIndex]->SetXTitle("E (GeV)");
+          fhDispEtaE[pidIndex]->SetYTitle("#sigma^{2}_{#eta #eta}");
+          outputContainer->Add(fhDispEtaE[pidIndex]);     
+          
+          fhDispPhiE[pidIndex]  = new TH2F (Form("h%sDispPhiE",pidParticle[pidIndex].Data()),
+                                            Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",pidParticle[pidIndex].Data()),  
+                                            nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+          fhDispPhiE[pidIndex]->SetXTitle("E (GeV)");
+          fhDispPhiE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}");
+          outputContainer->Add(fhDispPhiE[pidIndex]);  
+          
+          fhSumEtaE[pidIndex]  = new TH2F (Form("h%sSumEtaE",pidParticle[pidIndex].Data()),
+                                           Form("%s: #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",pidParticle[pidIndex].Data()),  
+                                           nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+          fhSumEtaE[pidIndex]->SetXTitle("E (GeV)");
+          fhSumEtaE[pidIndex]->SetYTitle("#delta^{2}_{#eta #eta}");
+          outputContainer->Add(fhSumEtaE[pidIndex]);     
+          
+          fhSumPhiE[pidIndex]  = new TH2F (Form("h%sSumPhiE",pidParticle[pidIndex].Data()),
+                                           Form("%s: #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",pidParticle[pidIndex].Data()),  
+                                           nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+          fhSumPhiE[pidIndex]->SetXTitle("E (GeV)");
+          fhSumPhiE[pidIndex]->SetYTitle("#delta^{2}_{#phi #phi}");
+          outputContainer->Add(fhSumPhiE[pidIndex]);  
+          
+          fhSumEtaPhiE[pidIndex]  = new TH2F (Form("h%sSumEtaPhiE",pidParticle[pidIndex].Data()),
+                                              Form("%s: #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",pidParticle[pidIndex].Data()),  
+                                              nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
+          fhSumEtaPhiE[pidIndex]->SetXTitle("E (GeV)");
+          fhSumEtaPhiE[pidIndex]->SetYTitle("#delta^{2}_{#eta #phi}");
+          outputContainer->Add(fhSumEtaPhiE[pidIndex]);
+          
+          fhDispEtaPhiDiffE[pidIndex]  = new TH2F (Form("h%sDispEtaPhiDiffE",pidParticle[pidIndex].Data()),
+                                                   Form("%s: #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",pidParticle[pidIndex].Data()), 
+                                                   nptbins,ptmin,ptmax,200, -10,10); 
+          fhDispEtaPhiDiffE[pidIndex]->SetXTitle("E (GeV)");
+          fhDispEtaPhiDiffE[pidIndex]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
+          outputContainer->Add(fhDispEtaPhiDiffE[pidIndex]);    
+          
+          fhSphericityE[pidIndex]  = new TH2F (Form("h%sSphericityE",pidParticle[pidIndex].Data()),
+                                               Form("%s: (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",pidParticle[pidIndex].Data()),  
+                                               nptbins,ptmin,ptmax, 200, -1,1); 
+          fhSphericityE[pidIndex]->SetXTitle("E (GeV)");
+          fhSphericityE[pidIndex]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
+          outputContainer->Add(fhSphericityE[pidIndex]);
+          
+          Int_t bin[] = {0,2,4,6,10,1000};
+          for(Int_t i = 0; i < 5; i++)
+          {
+            fhDispEtaDispPhiEBin[pidIndex][i] = new TH2F (Form("h%sDispEtaDispPhi_EBin%d",pidParticle[pidIndex].Data(),i),
+                                                          Form("%s: #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pidParticle[pidIndex].Data(),bin[i],bin[i+1]), 
+                                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+            fhDispEtaDispPhiEBin[pidIndex][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
+            fhDispEtaDispPhiEBin[pidIndex][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+            outputContainer->Add(fhDispEtaDispPhiEBin[pidIndex][i]); 
+          }
         }
       }
-      
     } // Shower shape
         
     if(IsDataMC())
@@ -711,7 +719,7 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
           fhMCELambda0[pidIndex][i]->SetXTitle("E (GeV)");
           outputContainer->Add(fhMCELambda0[pidIndex][i]) ; 
           
-          if(fCalorimeter=="EMCAL")
+          if(fCalorimeter=="EMCAL" && !fFillOnlySimpleSSHisto)
           {
             fhMCEDispEta[pidIndex][i]  = new TH2F (Form("h%sEDispEtaE_MC%s",pidParticle[pidIndex].Data(),pnamess[i].Data()),
                                                    Form("cluster from %s : %s like, #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data(),pidParticle[pidIndex].Data()),
@@ -747,14 +755,13 @@ TList *  AliAnaElectron::GetCreateOutputObjects()
             fhMCESphericity[pidIndex][i]->SetXTitle("E (GeV)");
             fhMCESphericity[pidIndex][i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
             outputContainer->Add(fhMCESphericity[pidIndex][i]);
-                      
           }
           
         }// loop    
       }   
     }
     
-    if(IsCaloPIDOn() && pidIndex > 0) continue;
+    //if(IsCaloPIDOn() && pidIndex > 0) continue;
     
     fhNCellsE[pidIndex]  = new TH2F (Form("h%sNCellsE",pidParticle[pidIndex].Data()),
                                      Form("N cells in %s cluster vs E ",pidParticle[pidIndex].Data()),
@@ -1059,34 +1066,35 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
     //----------------------------
     //Create AOD for analysis
     //----------------------------
-    AliAODPWG4Particle aodph = AliAODPWG4Particle(mom);
+    AliAODPWG4Particle aodpart = AliAODPWG4Particle(mom);
     
     //...............................................
     //Set the indeces of the original caloclusters (MC, ID), and calorimeter  
     Int_t label = calo->GetLabel();
-    aodph.SetLabel(label);
-    aodph.SetCaloLabel(calo->GetID(),-1);
-    aodph.SetDetector(fCalorimeter);
+    aodpart.SetLabel(label);
+    aodpart.SetCaloLabel(calo->GetID(),-1);
+    aodpart.SetDetector(fCalorimeter);
     //printf("Index %d, Id %d, iaod %d\n",icalo, calo->GetID(),GetOutputAODBranch()->GetEntriesFast());
     
     //...............................................
     //Set bad channel distance bit
     Double_t distBad=calo->GetDistanceToBadChannel() ; //Distance to bad channel
-    if     (distBad > fMinDist3) aodph.SetDistToBad(2) ;
-    else if(distBad > fMinDist2) aodph.SetDistToBad(1) ; 
-    else                         aodph.SetDistToBad(0) ;
-    //printf("DistBad %f Bit %d\n",distBad, aodph.DistToBad());
+    if     (distBad > fMinDist3) aodpart.SetDistToBad(2) ;
+    else if(distBad > fMinDist2) aodpart.SetDistToBad(1) ; 
+    else                         aodpart.SetDistToBad(0) ;
+    //printf("DistBad %f Bit %d\n",distBad, aodpart.DistToBad());
     
     //--------------------------------------------------------------------------------------
     //Play with the MC stack if available
     //--------------------------------------------------------------------------------------
     
     //Check origin of the candidates
-    if(IsDataMC()){
-      aodph.SetTag(GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(), aodph.GetInputFileIndex()));
+    if(IsDataMC())
+    {
+      aodpart.SetTag(GetMCAnalysisUtils()->CheckOrigin(calo->GetLabels(),calo->GetNLabels(),GetReader(), aodpart.GetInputFileIndex()));
       
       if(GetDebug() > 0)
-        printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",aodph.GetTag());
+        printf("AliAnaElectron::MakeAnalysisFillAOD() - Origin of candidate, bit map %d\n",aodpart.GetTag());
     }//Work with stack also   
     
     
@@ -1120,7 +1128,7 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
       
     }// dEdx
     
-    aodph.SetIdentifiedParticleType(pid);    
+    aodpart.SetIdentifiedParticleType(pid);    
     
     Int_t pidIndex = 0;// Electron
     if(pid == AliCaloPID::kChargedHadron) pidIndex = 1;
@@ -1129,7 +1137,7 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
     //Fill some shower shape histograms
     //---------------------------------
 
-    FillShowerShapeHistograms(calo,aodph.GetTag(),pid);
+    FillShowerShapeHistograms(calo,aodpart.GetTag(),pid);
     
     if(pid == AliCaloPID::kElectron)
       WeightHistograms(calo);
@@ -1144,14 +1152,16 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
       // Get most probable PID, 2 options check bayesian PID weights or redo PID
       // By default, redo PID
     
-      if(GetCaloPID()->GetIdentifiedParticleType(calo)!=AliCaloPID::kPhoton) continue;
-      
-      if(GetDebug() > 1) printf("AliAnaPhoton::MakeAnalysisFillAOD() - PDG of identified particle %d\n",aodph.GetIdentifiedParticleType());
+      if(GetCaloPID()->GetIdentifiedParticleType(calo)!=AliCaloPID::kPhoton)
+      {
+        continue;
+      }
+      if(GetDebug() > 1) printf("AliAnaPhoton::MakeAnalysisFillAOD() - PDG of identified particle %d\n",aodpart.GetIdentifiedParticleType());
       
     }
         
     if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD() - Photon selection cuts passed: pT %3.2f, pdg %d\n",
-                              aodph.Pt(), aodph.GetIdentifiedParticleType());
+                              aodpart.Pt(), aodpart.GetIdentifiedParticleType());
     
     //FIXME, this to MakeAnalysisFillHistograms ...
     Int_t absID             = 0; 
@@ -1162,14 +1172,16 @@ void  AliAnaElectron::MakeAnalysisFillAOD()
     else                        cells = GetPHOSCells();
     
     absID = GetCaloUtils()->GetMaxEnergyCell(cells, calo,maxCellFraction);
-    
-    fhMaxCellDiffClusterE[pidIndex]->Fill(aodph.E(),maxCellFraction);
-    fhNCellsE[pidIndex]            ->Fill(aodph.E(),calo->GetNCells());
-    fhTimeE[pidIndex]              ->Fill(aodph.E(),calo->GetTOF()*1.e9);
+    fhMaxCellDiffClusterE[pidIndex]->Fill(aodpart.E(),maxCellFraction);
+    fhNCellsE[pidIndex]            ->Fill(aodpart.E(),calo->GetNCells());
+    fhTimeE[pidIndex]              ->Fill(aodpart.E(),calo->GetTOF()*1.e9);
+
+    //Add AOD with electron/hadron object to aod branch
+    if ( pid == fAODParticle || fAODParticle == 0 ) 
+    {
+      AddAODParticle(aodpart);
+    }
 
-    //Add AOD with photon object to aod branch
-    AddAODParticle(aodph);
-    
   }//loop
   
   if(GetDebug() > 1) printf("AliAnaElectron::MakeAnalysisFillAOD()  End fill AODs, with %d entries \n",GetOutputAODBranch()->GetEntriesFast());  
index b118c12e15cef4055c6823a0850b98854b48a193..c7bced46b605023a38dad6bbf14aa857e2c51d49 100755 (executable)
@@ -96,8 +96,16 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   Double_t     GetNCellCut()                    const { return fNCellsCut          ; }
     
   void         FillNOriginHistograms(Int_t n)         { fNOriginHistograms = n ; 
-    if(n > 10) fNOriginHistograms = 10; }
+                                                        if(n > 10) fNOriginHistograms = 10; }
 
+  
+  void         FillAODWithElectrons()                 { fAODParticle = AliCaloPID::kElectron      ; }
+  void         FillAODWithHadrons()                   { fAODParticle = AliCaloPID::kChargedHadron ; }
+  void         FillAODWithAny()                       { fAODParticle = 0 ; }
+
+  void         SwitchOnOnlySimpleSSHistoFill()        { fFillOnlySimpleSSHisto = kTRUE  ; }
+  void         SwitchOffOnlySimpleHistoFill()         { fFillOnlySimpleSSHisto = kFALSE ; }
+  
   // For histograms in arrays, index in the array, corresponding to a particle
   enum mcTypes    { kmcPhoton = 0,        kmcPi0Decay = 1,       kmcOtherDecay = 2,  
                     kmcPi0 = 3,           kmcEta = 4,            kmcElectron = 5,       
@@ -117,6 +125,7 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   Double_t fTimeCutMax  ;                      // Remove clusters/cells with time larger than this value, in ns
   Int_t    fNCellsCut ;                        // Accept for the analysis clusters with more than fNCellsCut cells
   Bool_t   fFillSSHistograms ;                 // Fill shower shape histograms
+  Bool_t   fFillOnlySimpleSSHisto;   // Fill selected cluster histograms, selected SS histograms
   Bool_t   fFillWeightHistograms ;             // Fill weigth histograms
   Int_t    fNOriginHistograms;                 // Fill only NOriginHistograms of the 14 defined types
 
@@ -125,6 +134,8 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   Float_t  fEOverPMin;                         // Max E/p for electrons, after dEdx cut
   Float_t  fEOverPMax;                         // Min E/p for electrons, after dEdx cut
 
+  Int_t    fAODParticle;                       // Select the type of particle to put in AODs for other analysis
+  
   //Histograms 
   TH2F * fhdEdxvsE;                            //! matched track dEdx vs cluster E 
   TH2F * fhdEdxvsP;                            //! matched track dEdx vs track P
@@ -210,10 +221,10 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhEmbedElectronELambda0MostlyBkg ;     //!  Lambda0 vs E for embedded electrons with 50%<fraction<10% 
   TH2F * fhEmbedElectronELambda0FullBkg ;       //!  Lambda0 vs E for embedded electrons with less than 10% of the cluster energy
   
-  AliAnaElectron(              const AliAnaElectron & g) ; // cpy ctor  
-  AliAnaElectron & operator = (const AliAnaElectron & g) ; // cpy assignment
+  AliAnaElectron(              const AliAnaElectron & el) ; // cpy ctor  
+  AliAnaElectron & operator = (const AliAnaElectron & el) ; // cpy assignment
   
-  ClassDef(AliAnaElectron,3)
+  ClassDef(AliAnaElectron,4)
 
 } ;
  
index 91ae308be6c8858252472d949beaaca44bd30a3d..84118f8ddc1684bde2f751dbac7dddb142ab96af 100755 (executable)
@@ -33,7 +33,7 @@ public:
                                 const Bool_t  isolated[4], 
                                 Int_t & iparton) ; 
   
-    TList * GetCreateOutputObjects() ;
+  TList * GetCreateOutputObjects() ;
   
   void    GetPartonsAndJets() ;
     
index 4086475ea549bfd9c5fbcc08711c61fcd8498093..bf8275805391feb197c57fe0f65b39fa9f065882 100755 (executable)
@@ -76,7 +76,8 @@ ClassImp(AliAnaParticleHadronCorrelation)
     //Histograms
     fhPtInput(0),                   fhPtFidCut(0),
     fhPtLeading(0),                 fhPtLeadingVzBin(0),   fhPtLeadingBin(0),                 
-    fhPhiLeading(0),                fhEtaLeading(0),                
+    fhPhiLeading(0),                fhEtaLeading(0),   
+    fhPtLeadingMC(),
     fhPtLeadingCentrality(0),       fhPtLeadingEventPlane(0), 
     fhLeadingEventPlaneCentrality(0),
     fhPtLeadingMixed(0),            fhPtLeadingMixedVzBin(0), fhPtLeadingMixedBin(0),              
@@ -92,6 +93,7 @@ ClassImp(AliAnaParticleHadronCorrelation)
     fhZTCharged(0),                 fhZTUeCharged(0),
     fhZTPosCharged(0),              fhZTNegCharged(0),
     fhPtHbpZTCharged(0),            fhPtHbpZTUeCharged(0),
+    fhXEChargedMC(),  
     fhDeltaPhiUeLeftCharged(0),     fhDeltaPhiUeRightCharged(0),
     fhDeltaPhiUeLeftUpCharged(0),   fhDeltaPhiUeRightUpCharged(0),
     fhDeltaPhiUeLeftDownCharged(0), fhDeltaPhiUeRightDownCharged(0),
@@ -155,6 +157,13 @@ ClassImp(AliAnaParticleHadronCorrelation)
     
   //Initialize parameters
   InitParameters();
+  
+  for(Int_t i = 0; i < 6; i++)
+  { 
+    fhPtLeadingMC[i] = 0;
+    fhXEChargedMC[i] = 0;
+  }
+  
 }
 
 //_________________________________________________________________
@@ -377,7 +386,8 @@ void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(con
                                                                              const Float_t zT,       const Float_t hbpZT, 
                                                                              const Float_t pout,     const Float_t deltaPhi,
                                                                              const Int_t   nTracks,  const Int_t   charge,
-                                                                             const Int_t   bin, const Bool_t  decay    )
+                                                                             const Int_t   bin,      const Bool_t  decay,
+                                                                             const Int_t   mcTag)
 
 {
   // Fill mostly momentum imbalance related histograms
@@ -390,6 +400,17 @@ void AliAnaParticleHadronCorrelation::FillChargedMomentumImbalanceHistograms(con
   fhPtTrigPout        ->Fill(ptTrig , pout) ;
   fhPtTrigCharged     ->Fill(ptTrig , ptAssoc) ;
   
+  if(IsDataMC())
+  {
+    if     ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) ||        
+             GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhXEChargedMC[0]->Fill(ptTrig , xE);
+    else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))           fhXEChargedMC[1]->Fill(ptTrig , xE);
+    else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))      fhXEChargedMC[2]->Fill(ptTrig , xE);
+    else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))      fhXEChargedMC[3]->Fill(ptTrig , xE);
+    else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))    fhXEChargedMC[4]->Fill(ptTrig , xE);
+    else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))      fhXEChargedMC[5]->Fill(ptTrig , xE);
+  }  
+  
   if(fDecayTrigger && decay)
   {          
     fhXEDecayCharged->Fill(ptTrig,xE); 
@@ -910,33 +931,48 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
   
   Int_t nMixBins = GetNCentrBin()*GetNZvertBin()*GetNRPBin();
   
+  TString nameMC[] = {"Photon","Pi0","Pi0Decay","EtaDecay","OtherDecay","Hadron"};
+
+  
   // For vz dependent histograms, if option ON
   Int_t   nz  = 1  ;
   if(fCorrelVzBin) nz = GetNZvertBin();
   TString sz  = "" ;
   TString tz  = "" ;
   
-  fhPtInput  = new TH1F("hPtInput","p_T distribution of input trigger particles", nptbins,ptmin,ptmax); 
+  fhPtInput  = new TH1F("hPtInput","p_{T} distribution of input trigger particles", nptbins,ptmin,ptmax); 
   fhPtInput->SetXTitle("p_{T}^{trig} (GeV/c)");
   outputContainer->Add(fhPtInput);
 
-  fhPtFidCut  = new TH1F("hPtFidCut","p_T distribution of input trigger particles after fiducial cut", nptbins,ptmin,ptmax); 
+  fhPtFidCut  = new TH1F("hPtFidCut","p_{T} distribution of input trigger particles after fiducial cut", nptbins,ptmin,ptmax); 
   fhPtFidCut->SetXTitle("p_{T}^{trig} (GeV/c)");
   outputContainer->Add(fhPtFidCut);
 
-  fhPtLeading  = new TH1F("hPtLeading","p_T distribution of leading particles", nptbins,ptmin,ptmax); 
+  fhPtLeading  = new TH1F("hPtLeading","p_{T} distribution of leading particles", nptbins,ptmin,ptmax); 
   fhPtLeading->SetXTitle("p_{T}^{trig} (GeV/c)");
   outputContainer->Add(fhPtLeading);
 
+  if(IsDataMC())
+  {
+    for(Int_t i=0; i < 6; i++)
+    {
+      fhPtLeadingMC[i]  = new TH1F(Form("hPtLeading_MC%s",nameMC[i].Data()),
+                                   Form("p_{T} distribution of leading particles, trigger origin is %s",nameMC[i].Data()), 
+                                   nptbins,ptmin,ptmax); 
+      fhPtLeadingMC[i]->SetXTitle("p_{T}^{trig} (GeV/c)");
+      outputContainer->Add(fhPtLeadingMC[i]);
+    }
+  }
+  
   if(fCorrelVzBin)
   {
-    fhPtLeadingVzBin  = new TH2F("hPtLeadingVzBin","p_T distribution of leading particles vs vz bin", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); 
+    fhPtLeadingVzBin  = new TH2F("hPtLeadingVzBin","p_{T} distribution of leading particles vs vz bin", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); 
     fhPtLeadingVzBin->SetXTitle("p_{T}^{trig} (GeV/c)");
     fhPtLeadingVzBin->SetYTitle("v_{z} bin");
     outputContainer->Add(fhPtLeadingVzBin);
   }
   
-  fhPtLeadingBin  = new TH2F ("hPtLeadingBin","p_T distribution of leading particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); 
+  fhPtLeadingBin  = new TH2F ("hPtLeadingBin","p_{T} distribution of leading particles", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); 
   fhPtLeadingBin->SetXTitle("p_{T}^{trig} (GeV/c)");
   fhPtLeadingBin->SetYTitle("Bin");
   outputContainer->Add(fhPtLeadingBin);
@@ -1109,6 +1145,20 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
     outputContainer->Add(fhUePart);
 
     outputContainer->Add(fhXECharged) ;
+    
+    if(IsDataMC())
+    {
+      for(Int_t i=0; i < 6; i++)
+      {
+        fhXEChargedMC[i]  = new TH2F(Form("hXECharged_MC%s",nameMC[i].Data()),
+                                     Form("x_{E} for charged tracks, trigger origin is %s",nameMC[i].Data()),
+         nptbins,ptmin,ptmax,200,0.,2.); 
+        fhXEChargedMC[i]->SetYTitle("x_{E}");
+        fhXEChargedMC[i]->SetXTitle("p_{T trigger}");
+        outputContainer->Add(fhXEChargedMC[i]) ;
+      }
+    }
+  
     outputContainer->Add(fhXEPosCharged) ;
     outputContainer->Add(fhXENegCharged) ;
     outputContainer->Add(fhXEUeCharged) ;
@@ -1337,7 +1387,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
       if(fPi0Trigger)
       {
         fhPtPi0DecayRatio  = new TH2F
-        ("hPtPi0DecayRatio","p_T of #pi^{0} and the ratio of pt for two decay", 
+        ("hPtPi0DecayRatio","p_{T} of #pi^{0} and the ratio of pt for two decay", 
          nptbins,ptmin,ptmax, 100,0.,2.); 
         fhPtPi0DecayRatio->SetXTitle("p_{T}^{#pi^{0}} (GeV/c)");
         fhPtPi0DecayRatio->SetYTitle("p_{T}^{Decay}/p_{T}^{#pi^{0}}");
@@ -1716,7 +1766,7 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
     fh2phiLeadingParticle->GetXaxis()->SetTitle("p_{T gen Leading} (GeV/c)");
     fh2phiLeadingParticle->GetYaxis()->SetTitle("(#phi_{rec}-#phi_{gen})/#phi_{gen}");
 
-    fhMCPtLeading  = new TH1F ("hMCPtLeading","MC : p_T distribution of leading particles", nptbins,ptmin,ptmax); 
+    fhMCPtLeading  = new TH1F ("hMCPtLeading","MC : p_{T} distribution of leading particles", nptbins,ptmin,ptmax); 
     fhMCPtLeading->SetXTitle("p_{T}^{trig} (GeV/c)");
 
     fhMCPhiLeading  = new TH2F ("hMCPhiLeading","MC : #phi distribution of leading Particles",nptbins,ptmin,ptmax, nphibins,phimin,phimax); 
@@ -1868,18 +1918,18 @@ TList *  AliAnaParticleHadronCorrelation::GetCreateOutputObjects()
       }    
     }
     
-    fhPtLeadingMixed  = new TH1F ("hPtLeadingMixed","p_T distribution of leading particles, used for mixing", nptbins,ptmin,ptmax); 
+    fhPtLeadingMixed  = new TH1F ("hPtLeadingMixed","p_{T} distribution of leading particles, used for mixing", nptbins,ptmin,ptmax); 
     fhPtLeadingMixed->SetXTitle("p_{T}^{trig} (GeV/c)");
 
     if(fCorrelVzBin)
     {
-      fhPtLeadingMixedVzBin  = new TH2F ("hPtLeadingMixedVzBin","p_T distribution of leading particles, used for mixing", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); 
+      fhPtLeadingMixedVzBin  = new TH2F ("hPtLeadingMixedVzBin","p_{T} distribution of leading particles, used for mixing", nptbins,ptmin,ptmax,GetNZvertBin(),0,GetNZvertBin()); 
       fhPtLeadingMixedVzBin->SetXTitle("p_{T}^{trig} (GeV/c)");
       fhPtLeadingMixedVzBin->SetYTitle("v_{z} bin");
       outputContainer->Add(fhPtLeadingMixedVzBin);
     }
     
-    fhPtLeadingMixedBin  = new TH2F ("hPtLeadingMixedBin","p_T distribution of leading particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); 
+    fhPtLeadingMixedBin  = new TH2F ("hPtLeadingMixedBin","p_{T} distribution of leading particles vs mixing bin", nptbins,ptmin,ptmax,nMixBins,0,nMixBins); 
     fhPtLeadingMixedBin->SetXTitle("p_{T}^{trig} (GeV/c)");
     fhPtLeadingMixedBin->SetYTitle("Bin");
 
@@ -2350,6 +2400,18 @@ void  AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms()
       fhEtaLeading->Fill(pt, particle->Eta());
       //printf("AliAnaParticleHadronCorrelation::MakeAnalysisFillHistograms() - Leading particle : pt %f, eta %f, phi %f\n",particle->Pt(),particle->Eta(),phi);
       
+      if(IsDataMC())
+      {
+        Int_t mcTag = particle->GetTag();
+        if     ( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) ||        
+                 GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtLeadingMC[0]->Fill(pt);
+        else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))           fhPtLeadingMC[1]->Fill(pt);
+        else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtLeadingMC[2]->Fill(pt);
+        else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtLeadingMC[3]->Fill(pt);
+        else if( GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtLeadingMC[4]->Fill(pt);
+        else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))      fhPtLeadingMC[5]->Fill(pt);
+      }        
+      
       Float_t cen = GetEventCentrality();
       Float_t ep  = GetEventPlaneAngle();
       
@@ -2513,7 +2575,7 @@ Bool_t  AliAnaParticleHadronCorrelation::MakeChargedCorrelation(AliAODPWG4Partic
       {
         
         FillChargedMomentumImbalanceHistograms(ptTrig, pt, xE, hbpXE, zT, hbpZT, pout, deltaPhi, 
-                                               nTracks, track->Charge(), bin, decay);
+                                               nTracks, track->Charge(), bin, decay,aodParticle->GetTag());
         
       } 
       if ( (deltaPhi > fUeDeltaPhiMinCut) && (deltaPhi < fUeDeltaPhiMaxCut) ) 
index fd548956a1d6a075ab2e058bf11cdbee77da3d21..1ea7bd0af2c70402fbb7e21ac029cbb2d52bbcd6 100755 (executable)
@@ -73,7 +73,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
                                                          const Float_t zT,       const Float_t hbpZT, 
                                                          const Float_t pout,     const Float_t deltaPhi,
                                                          const Int_t   nTracks,  const Int_t   charge,
-                                                         const Int_t   assocBin, const Bool_t  decay );
+                                                         const Int_t   assocBin, const Bool_t  decay, const Int_t mcTag );
   
   void         FillChargedUnderlyingEventHistograms     (const Float_t ptTrig,   const Float_t ptAssoc, 
                                                          const Float_t deltaPhi, const Int_t nTracks);
@@ -216,6 +216,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   TH2F *       fhPhiLeading;                   //! phi distribution vs pT of leading particles
   TH2F *       fhEtaLeading;                   //! eta distribution vs pT of leading particles
   
+  TH1F *       fhPtLeadingMC[6];               //! pT distribution of leading particles, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
+
   TH2F *       fhPtLeadingCentrality;          //! pT distribution of leading particles vs centrality
   TH2F *       fhPtLeadingEventPlane;          //! pT distribution of leading particles vs centrality
   TH2F *       fhLeadingEventPlaneCentrality;  //! event plane vs centrality for leading particles
@@ -248,6 +250,8 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   TH2F *       fhPtHbpZTCharged  ;             //! Trigger particle -charged hadron momentum HBP histogram
   TH2F *       fhPtHbpZTUeCharged  ;           //! Trigger particle -underlying charged hadron momentum HBP histogram  
  
+  TH2F *       fhXEChargedMC[6]  ;             //! Trigger particle -charged hadron momentum imbalance histogram, check the origin of the cluster : decay photon (pi0, eta, other), merged photon (pi0), hadron, rest of photons (prompt, FSR, ISR)
+  
   //if several UE calculation is on, most useful for jet-jet events contribution
   TH2F *       fhDeltaPhiUeLeftCharged  ;      //! Difference of charged particle from underlying events phi and trigger particle  phi as function of charged particle pT
   TH2F *       fhDeltaPhiUeRightCharged  ;     //! Difference of charged particle from underlying events phi and trigger particle  phi 
@@ -376,7 +380,7 @@ class AliAnaParticleHadronCorrelation : public AliAnaCaloTrackCorrBaseClass {
   AliAnaParticleHadronCorrelation(              const AliAnaParticleHadronCorrelation & ph) ; // cpy ctor
   AliAnaParticleHadronCorrelation & operator = (const AliAnaParticleHadronCorrelation & ph) ; // cpy assignment
        
-  ClassDef(AliAnaParticleHadronCorrelation,23)
+  ClassDef(AliAnaParticleHadronCorrelation,24)
 } ;
  
 
index 01273d9e79c6c31a36a66faf2febeb3dcdd72e31..5a980d0c809b6d9267098323075c19be6fec37a9 100755 (executable)
@@ -69,21 +69,26 @@ fhPtIsoPrompt(0),                 fhPhiIsoPrompt(0),               fhEtaIsoPromp
 fhPtThresIsolatedPrompt(),        fhPtFracIsolatedPrompt(),        fhPtSumIsolatedPrompt(),
 fhPtIsoFragmentation(0),          fhPhiIsoFragmentation(0),        fhEtaIsoFragmentation(0), 
 fhPtThresIsolatedFragmentation(), fhPtFracIsolatedFragmentation(), fhPtSumIsolatedFragmentation(),
+fhPtIsoPi0(0),                    fhPhiIsoPi0(0),                  fhEtaIsoPi0(0),
+fhPtThresIsolatedPi0(),           fhPtFracIsolatedPi0(),           fhPtSumIsolatedPi0(),
 fhPtIsoPi0Decay(0),               fhPhiIsoPi0Decay(0),             fhEtaIsoPi0Decay(0),
 fhPtThresIsolatedPi0Decay(),      fhPtFracIsolatedPi0Decay(),      fhPtSumIsolatedPi0Decay(),
 fhPtIsoEtaDecay(0),               fhPhiIsoEtaDecay(0),             fhEtaIsoEtaDecay(0),
 fhPtThresIsolatedEtaDecay(),      fhPtFracIsolatedEtaDecay(),      fhPtSumIsolatedEtaDecay(),
 fhPtIsoOtherDecay(0),             fhPhiIsoOtherDecay(0),           fhEtaIsoOtherDecay(0), 
 fhPtThresIsolatedOtherDecay(),    fhPtFracIsolatedOtherDecay(),    fhPtSumIsolatedOtherDecay(),
-fhPtIsoConversion(0),             fhPhiIsoConversion(0),           fhEtaIsoConversion(0), 
-fhPtThresIsolatedConversion(),    fhPtFracIsolatedConversion(),    fhPtSumIsolatedConversion(),
-fhPtIsoUnknown(0),                fhPhiIsoUnknown(0),              fhEtaIsoUnknown(0), 
-fhPtThresIsolatedUnknown(),       fhPtFracIsolatedUnknown(),       fhPtSumIsolatedUnknown(),
-fhPtNoIsoPi0Decay(0),             fhPtNoIsoEtaDecay(0),            fhPtNoIsoOtherDecay(0),
+//fhPtIsoConversion(0),             fhPhiIsoConversion(0),           fhEtaIsoConversion(0), 
+//fhPtThresIsolatedConversion(),    fhPtFracIsolatedConversion(),    fhPtSumIsolatedConversion(),
+fhPtIsoHadron(0),                 fhPhiIsoHadron(0),               fhEtaIsoHadron(0), 
+fhPtThresIsolatedHadron(),        fhPtFracIsolatedHadron(),        fhPtSumIsolatedHadron(),
+fhPtNoIsoPi0(0),                  fhPtNoIsoPi0Decay(0),             
+fhPtNoIsoEtaDecay(0),             fhPtNoIsoOtherDecay(0),
 fhPtNoIsoPrompt(0),               fhPtIsoMCPhoton(0),              fhPtNoIsoMCPhoton(0),
-fhPtNoIsoConversion(0),           fhPtNoIsoFragmentation(0),       fhPtNoIsoUnknown(0),
+//fhPtNoIsoConversion(0),           
+fhPtNoIsoFragmentation(0),        fhPtNoIsoHadron(0),
 // Hist several IC
-fhSumPtLeadingPt(),fhPtLeadingPt(),fhFRSumPtLeadingPt(),fhFRPtLeadingPt(),
+fhSumPtLeadingPt(),               fhPtLeadingPt(), 
+fhFRSumPtLeadingPt(),             fhFRPtLeadingPt(),
 fhPtThresIsolated(),              fhPtFracIsolated(),              fhPtSumIsolated(),
 fhEtaPhiPtThresIso(),             fhEtaPhiPtThresDecayIso(),       fhPtPtThresDecayIso(),
 fhEtaPhiPtFracIso(),              fhEtaPhiPtFracDecayIso(),        fhPtPtFracDecayIso(),
@@ -96,7 +101,8 @@ fhTrackMatchedDEta(),             fhTrackMatchedDPhi(),           fhTrackMatched
 fhdEdx(),                         fhEOverP(),                     fhTrackMatchedMCParticle(),
 fhELambda0() ,                    fhELambda1(),                   fhELambda0SSBkg(),
 fhELambda0TRD(),                  fhELambda1TRD(),
-
+fhELambda0MCPhoton(),             fhELambda0MCPi0(),              fhELambda0MCPi0Decay(),
+fhELambda0MCEtaDecay(),           fhELambda0MCOtherDecay(),       fhELambda0MCHadron(),
 // Number of local maxima in cluster
 fhNLocMax(),
 fhELambda0LocMax1(),              fhELambda1LocMax1(),
@@ -118,10 +124,11 @@ fHistoNPtInConeBins(0),           fHistoPtInConeMax(0.),           fHistoPtInCon
     fhPtSumIsolatedPrompt       [i] = 0 ;  
     fhPtSumIsolatedFragmentation[i] = 0 ;  
     fhPtSumIsolatedPi0Decay     [i] = 0 ;  
+    fhPtSumIsolatedPi0          [i] = 0 ;  
     fhPtSumIsolatedEtaDecay     [i] = 0 ;  
     fhPtSumIsolatedOtherDecay   [i] = 0 ;  
-    fhPtSumIsolatedConversion   [i] = 0 ;  
-    fhPtSumIsolatedUnknown      [i] = 0 ;  
+//    fhPtSumIsolatedConversion   [i] = 0 ;  
+    fhPtSumIsolatedHadron      [i] = 0 ;  
     
     for(Int_t j = 0; j < 5 ; j++)
     { 
@@ -149,18 +156,20 @@ fHistoNPtInConeBins(0),           fHistoPtInConeMax(0.),           fHistoPtInCon
       fhPtThresIsolatedPrompt       [i][j] = 0 ;  
       fhPtThresIsolatedFragmentation[i][j] = 0 ; 
       fhPtThresIsolatedPi0Decay     [i][j] = 0 ; 
-      fhPtThresIsolatedEtaDecay     [i][j] = 0 ;  
+      fhPtThresIsolatedPi0          [i][j] = 0 ; 
+      fhPtThresIsolatedEtaDecay     [i][j] = 0 ; 
       fhPtThresIsolatedOtherDecay   [i][j] = 0 ;  
-      fhPtThresIsolatedConversion   [i][j] = 0 ;  
-      fhPtThresIsolatedUnknown      [i][j] = 0 ;  
+//      fhPtThresIsolatedConversion   [i][j] = 0 ;  
+      fhPtThresIsolatedHadron      [i][j] = 0 ;  
       
       fhPtFracIsolatedPrompt        [i][j] = 0 ;  
       fhPtFracIsolatedFragmentation [i][j] = 0 ;  
+      fhPtFracIsolatedPi0           [i][j] = 0 ;  
       fhPtFracIsolatedPi0Decay      [i][j] = 0 ;  
       fhPtFracIsolatedEtaDecay      [i][j] = 0 ;  
       fhPtFracIsolatedOtherDecay    [i][j] = 0 ;  
-      fhPtFracIsolatedConversion    [i][j] = 0 ;
-      fhPtFracIsolatedUnknown       [i][j] = 0 ;  
+//      fhPtFracIsolatedConversion    [i][j] = 0 ;
+      fhPtFracIsolatedHadron       [i][j] = 0 ;  
       
     }  
   } 
@@ -180,6 +189,10 @@ fHistoNPtInConeBins(0),           fHistoPtInConeMax(0.),           fHistoPtInCon
     fhELambda0        [i] = 0 ;             fhELambda1        [i] = 0 ; 
     fhELambda0TRD     [i] = 0 ;             fhELambda1TRD     [i] = 0 ;
     
+    fhELambda0MCPhoton  [i] = 0 ;           fhELambda0MCPi0       [i] = 0 ;       fhELambda0MCPi0Decay[i] = 0 ;
+    fhELambda0MCEtaDecay[i] = 0 ;           fhELambda0MCOtherDecay[i] = 0 ;       fhELambda0MCHadron  [i] = 0 ;
+
+    
     // Number of local maxima in cluster
     fhNLocMax        [i] = 0 ;
     fhELambda0LocMax1[i] = 0 ;              fhELambda1LocMax1[i] = 0 ;
@@ -195,10 +208,10 @@ void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(cons
                                                                             const Int_t  clusterID,
                                                                             const Int_t  nMaxima,
                                                                             const Int_t  mcTag,
-                                                                           const TObjArray * plCTS, 
-                                                                           const TObjArray * plNe, 
-                                                                           AliAODPWG4ParticleCorrelation  *pCandidate,
-                                                                           const AliCaloTrackReader * reader, 
+                                                                            const TObjArray * plCTS, 
+                                                                            const TObjArray * plNe, 
+                                                                            AliAODPWG4ParticleCorrelation  *pCandidate,
+                                                                            const AliCaloTrackReader * reader, 
                                                                             const AliCaloPID * pid)
 {
   // Fill Track matching and Shower Shape control histograms  
@@ -226,6 +239,20 @@ void AliAnaParticleIsolation::FillTrackMatchingShowerShapeControlHistograms(cons
       fhELambda0[isolated]->Fill(energy, cluster->GetM02() );  
       fhELambda1[isolated]->Fill(energy, cluster->GetM20() );  
       
+      if(IsDataMC())
+      {
+        if     (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt) ||        
+                GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhELambda0MCPhoton    [isolated]->Fill(energy, cluster->GetM02());
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))           fhELambda0MCPi0       [isolated]->Fill(energy, cluster->GetM02());
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))      fhELambda0MCPi0Decay  [isolated]->Fill(energy, cluster->GetM02());
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))      fhELambda0MCEtaDecay  [isolated]->Fill(energy, cluster->GetM02());
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))    fhELambda0MCOtherDecay[isolated]->Fill(energy, cluster->GetM02());
+       
+        //        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))    fhPtNoIsoConversion   ->Fill(energy);
+        else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))     fhELambda0MCHadron    [isolated]->Fill(energy);        
+      
+      }
+      
       if(fCalorimeter == "EMCAL" && GetModuleNumber(cluster) > 5) // TO DO: CHANGE FOR 2012
       {
         fhELambda0TRD[isolated]->Fill(energy, cluster->GetM02() );  
@@ -437,14 +464,15 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
   {
     TString hName [] = {"NoIso",""};
     TString hTitle[] = {"Not isolated"  ,"isolated"};
-   if(fFillSSHisto)
-      
+    if(fFillSSHisto)
+    { 
        fhELambda0SSBkg  = new TH2F
-         ("hELambda0SSBkg","Non isolated clusters : E vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
-        fhELambda0SSBkg->SetYTitle("#lambda_{0}^{2}");
-        fhELambda0SSBkg->SetXTitle("E (GeV)");
-        outputContainer->Add(fhELambda0SSBkg) ;
-      }
+      ("hELambda0SSBkg","Non isolated clusters : E vs #lambda_{0}",nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+      fhELambda0SSBkg->SetYTitle("#lambda_{0}^{2}");
+      fhELambda0SSBkg->SetXTitle("E (GeV)");
+      outputContainer->Add(fhELambda0SSBkg) ;
+    }
+    
     for(Int_t iso = 0; iso < 2; iso++)
     {
       if(fFillTMHisto)
@@ -521,6 +549,51 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
         fhELambda0[iso]->SetXTitle("E (GeV)");
         outputContainer->Add(fhELambda0[iso]) ; 
         
+        if(IsDataMC())
+        {
+          fhELambda0MCPhoton[iso]  = new TH2F
+          (Form("hELambda0%s_MCPhoton",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is final state photon",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCPhoton[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCPhoton[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCPhoton[iso]) ; 
+          
+          fhELambda0MCPi0[iso]  = new TH2F
+          (Form("hELambda0%s_MCPi0",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is pi0 (2 #gamma)",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCPi0[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCPi0[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCPi0[iso]) ; 
+          
+          fhELambda0MCPi0Decay[iso]  = new TH2F
+          (Form("hELambda0%s_MCPi0Decay",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is pi0 decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCPi0Decay[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCPi0Decay[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCPi0Decay[iso]) ; 
+          
+          fhELambda0MCEtaDecay[iso]  = new TH2F
+          (Form("hELambda0%s_MCEtaDecay",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is eta decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCEtaDecay[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCEtaDecay[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCEtaDecay[iso]) ; 
+          
+          fhELambda0MCOtherDecay[iso]  = new TH2F
+          (Form("hELambda0%s_MCOtherDecay",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is other decay",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCOtherDecay[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCOtherDecay[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCOtherDecay[iso]) ; 
+          
+          fhELambda0MCHadron[iso]  = new TH2F
+          (Form("hELambda0%s_MCHadron",hName[iso].Data()),
+           Form("%s cluster : E vs #lambda_{0}: Origin is hadron",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
+          fhELambda0MCHadron[iso]->SetYTitle("#lambda_{0}^{2}");
+          fhELambda0MCHadron[iso]->SetXTitle("E (GeV)");
+          outputContainer->Add(fhELambda0MCHadron[iso]) ; 
+        } 
+        
         fhELambda1[iso]  = new TH2F
         (Form("hELambda1%s",hName[iso].Data()),
          Form("%s cluster: E vs #lambda_{1}",hTitle[iso].Data()),nptbins,ptmin,ptmax,ssbins,ssmin,ssmax); 
@@ -597,7 +670,7 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
         
       }
     } // control histograms for isolated and non isolated objects
-                                                                                                                                                                                                                                                                                                                                                                            
+    
     fhConeSumPt  = new TH2F("hConePtSum",
                             Form("#Sigma p_{T} in isolation cone for R = %2.2f",r),
                             nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
@@ -611,10 +684,10 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
     fhPtInCone->SetYTitle("p_{T in cone} (GeV/c)");
     fhPtInCone->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhPtInCone) ;
-
+    
     fhPtInConeCent  = new TH2F("hPtInConeCent",
-                           Form("p_{T} in isolation cone for R = %2.2f",r),
-                           100,0,100,nptinconebins,ptinconemin,ptinconemax);
+                               Form("p_{T} in isolation cone for R = %2.2f",r),
+                               100,0,100,nptinconebins,ptinconemin,ptinconemax);
     fhPtInConeCent->SetYTitle("p_{T in cone} (GeV/c)");
     fhPtInConeCent->SetXTitle("centrality");
     outputContainer->Add(fhPtInConeCent) ;
@@ -632,49 +705,49 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
     fhPtInFRCone->SetYTitle("p_{T in cone} (GeV/c)");
     fhPtInFRCone->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhPtInFRCone) ; 
-
+    
     fhPhiUEConeSumPt  = new TH2F("hPhiUEConeSumPt",
-                             Form("p_{T} in phi band around isolation cone for R = %2.2f",r),
-                             nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
+                                 Form("p_{T} in phi band around isolation cone for R = %2.2f",r),
+                                 nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
     fhPhiUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)");
     fhPhiUEConeSumPt->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhPhiUEConeSumPt) ; 
-
+    
     fhEtaUEConeSumPt  = new TH2F("hEtaUEConeSumPt",
-                             Form("p_{T} in eta band around isolation cone for R = %2.2f",r),
-                             nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
+                                 Form("p_{T} in eta band around isolation cone for R = %2.2f",r),
+                                 nptbins,ptmin,ptmax,4*nptinconebins,ptinconemin,4*ptinconemax);
     fhEtaUEConeSumPt->SetYTitle("p_{T in band} (GeV/c)");
     fhEtaUEConeSumPt->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhEtaUEConeSumPt) ; 
-
+    
     fhEtaBand  = new TH2F("fhEtaBand",
-                             Form("Eta/Phi of particle in Eta band isolation cone for R = %2.2f",r),
-                           netabins,etamin,etamax,nphibins,phimin,phimax); 
+                          Form("Eta/Phi of particle in Eta band isolation cone for R = %2.2f",r),
+                          netabins,etamin,etamax,nphibins,phimin,phimax); 
     fhEtaBand->SetXTitle("#eta");
     fhEtaBand->SetYTitle("#phi");
     outputContainer->Add(fhEtaBand) ; 
-
+    
     fhPhiBand  = new TH2F("fhPhiBand",
-                             Form("Eta/Phi of particle in Phi band isolation cone for R = %2.2f",r),
-                           netabins,etamin,etamax,nphibins,phimin,phimax); 
+                          Form("Eta/Phi of particle in Phi band isolation cone for R = %2.2f",r),
+                          netabins,etamin,etamax,nphibins,phimin,phimax); 
     fhPhiBand->SetXTitle("#eta");
     fhPhiBand->SetYTitle("#phi");
     outputContainer->Add(fhPhiBand) ;
-
+    
     fhConeSumPtEtaUESub  = new TH2F("hConeSumPtEtaUESub",
-                              Form("#Sigma p_{T} after bkg subtraction from eta band in the isolation cone for R = %2.2f",r),
-                                   nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
+                                    Form("#Sigma p_{T} after bkg subtraction from eta band in the isolation cone for R = %2.2f",r),
+                                    nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
     fhConeSumPtEtaUESub->SetYTitle("#Sigma p_{T}");
     fhConeSumPtEtaUESub->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhConeSumPtEtaUESub) ;
-
+    
     fhConeSumPtPhiUESub  = new TH2F("hConeSumPtPhiUESub",
-                              Form("#Sigma p_{T} after bkg subtraction from phi band in the isolation cone for R = %2.2f",r),
-                                   nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
+                                    Form("#Sigma p_{T} after bkg subtraction from phi band in the isolation cone for R = %2.2f",r),
+                                    nptbins,ptmin,ptmax,2*nptsumbins,-ptsummax,ptsummax);
     fhConeSumPtPhiUESub->SetYTitle("#Sigma p_{T}");
     fhConeSumPtPhiUESub->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhConeSumPtPhiUESub) ;
-                                
+    
     fhEIso   = new TH1F("hE",
                         Form("Number of isolated particles vs E for R = %2.2f, p_{T}^{th} = %2.2f, p_{T}^{fr} = %2.2f",r,ptthre,ptfrac),
                         nptbins,ptmin,ptmax); 
@@ -760,6 +833,23 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
       fhEtaIsoFragmentation->SetXTitle("p_{T #gamma} (GeV/c)");
       outputContainer->Add(fhEtaIsoFragmentation) ;
       
+      fhPtIsoPi0  = new TH1F("hPtMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax); 
+      fhPtIsoPi0->SetYTitle("N");
+      fhPtIsoPi0->SetXTitle("p_{T #gamma}(GeV/c)");
+      outputContainer->Add(fhPtIsoPi0) ; 
+      
+      fhPhiIsoPi0  = new TH2F
+      ("hPhiMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,nphibins,phimin,phimax); 
+      fhPhiIsoPi0->SetYTitle("#phi");
+      fhPhiIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)");
+      outputContainer->Add(fhPhiIsoPi0) ; 
+      
+      fhEtaIsoPi0  = new TH2F
+      ("hEtaMCPi0","Number of isolated #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax,netabins,etamin,etamax); 
+      fhEtaIsoPi0->SetYTitle("#eta");
+      fhEtaIsoPi0->SetXTitle("p_{T #gamma} (GeV/c)");
+      outputContainer->Add(fhEtaIsoPi0) ;
+      
       fhPtIsoPi0Decay  = new TH1F("hPtMCPi0Decay","Number of isolated #gamma from #pi^{0} decay",nptbins,ptmin,ptmax); 
       fhPtIsoPi0Decay->SetYTitle("N");
       fhPtIsoPi0Decay->SetXTitle("p_{T #gamma}(GeV/c)");
@@ -811,39 +901,39 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
       fhEtaIsoOtherDecay->SetXTitle("p_{T #gamma} (GeV/c)");
       outputContainer->Add(fhEtaIsoOtherDecay) ;
       
-      fhPtIsoConversion  = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax); 
-      fhPtIsoConversion->SetYTitle("N");
-      fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)");
-      outputContainer->Add(fhPtIsoConversion) ; 
-      
-      fhPhiIsoConversion  = new TH2F
-      ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax); 
-      fhPhiIsoConversion->SetYTitle("#phi");
-      fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
-      outputContainer->Add(fhPhiIsoConversion) ; 
+      //      fhPtIsoConversion  = new TH1F("hPtMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax); 
+      //      fhPtIsoConversion->SetYTitle("N");
+      //      fhPtIsoConversion->SetXTitle("p_{T #gamma}(GeV/c)");
+      //      outputContainer->Add(fhPtIsoConversion) ; 
+      //      
+      //      fhPhiIsoConversion  = new TH2F
+      //      ("hPhiMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,nphibins,phimin,phimax); 
+      //      fhPhiIsoConversion->SetYTitle("#phi");
+      //      fhPhiIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
+      //      outputContainer->Add(fhPhiIsoConversion) ; 
+      //      
+      //      fhEtaIsoConversion  = new TH2F
+      //      ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax); 
+      //      fhEtaIsoConversion->SetYTitle("#eta");
+      //      fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
+      //      outputContainer->Add(fhEtaIsoConversion) ;
       
-      fhEtaIsoConversion  = new TH2F
-      ("hEtaMCConversion","Number of isolated converted #gamma",nptbins,ptmin,ptmax,netabins,etamin,etamax); 
-      fhEtaIsoConversion->SetYTitle("#eta");
-      fhEtaIsoConversion->SetXTitle("p_{T #gamma} (GeV/c)");
-      outputContainer->Add(fhEtaIsoConversion) ;
+      fhPtIsoHadron  = new TH1F("hPtMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax); 
+      fhPtIsoHadron->SetYTitle("N");
+      fhPtIsoHadron->SetXTitle("p_{T}(GeV/c)");
+      outputContainer->Add(fhPtIsoHadron) ; 
       
-      fhPtIsoUnknown  = new TH1F("hPtMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax); 
-      fhPtIsoUnknown->SetYTitle("N");
-      fhPtIsoUnknown->SetXTitle("p_{T}(GeV/c)");
-      outputContainer->Add(fhPtIsoUnknown) ; 
+      fhPhiIsoHadron  = new TH2F
+      ("hPhiMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); 
+      fhPhiIsoHadron->SetYTitle("#phi");
+      fhPhiIsoHadron->SetXTitle("p_{T} (GeV/c)");
+      outputContainer->Add(fhPhiIsoHadron) ; 
       
-      fhPhiIsoUnknown  = new TH2F
-      ("hPhiMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,nphibins,phimin,phimax); 
-      fhPhiIsoUnknown->SetYTitle("#phi");
-      fhPhiIsoUnknown->SetXTitle("p_{T} (GeV/c)");
-      outputContainer->Add(fhPhiIsoUnknown) ; 
-      
-      fhEtaIsoUnknown  = new TH2F
-      ("hEtaMCUnknown","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); 
-      fhEtaIsoUnknown->SetYTitle("#eta");
-      fhEtaIsoUnknown->SetXTitle("p_{T} (GeV/c)");
-      outputContainer->Add(fhEtaIsoUnknown) ;
+      fhEtaIsoHadron  = new TH2F
+      ("hEtaMCHadron","Number of isolated non-#gamma particles",nptbins,ptmin,ptmax,netabins,etamin,etamax); 
+      fhEtaIsoHadron->SetYTitle("#eta");
+      fhEtaIsoHadron->SetXTitle("p_{T} (GeV/c)");
+      outputContainer->Add(fhEtaIsoHadron) ;
       
     }//Histos with MC
     
@@ -884,6 +974,12 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
 
   if(IsDataMC())
   {
+    fhPtNoIsoPi0  = new TH1F
+    ("hPtNoIsoPi0","Number of not isolated leading #gamma from #pi^{0} (2 #gamma)",nptbins,ptmin,ptmax); 
+    fhPtNoIsoPi0->SetYTitle("N");
+    fhPtNoIsoPi0->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhPtNoIsoPi0) ;
+    
     fhPtNoIsoPi0Decay  = new TH1F
     ("hPtNoIsoPi0Decay","Number of not isolated leading #gamma from #pi^{0} decay",nptbins,ptmin,ptmax); 
     fhPtNoIsoPi0Decay->SetYTitle("N");
@@ -920,11 +1016,11 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
     fhPtNoIsoMCPhoton->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhPtNoIsoMCPhoton) ;
     
-    fhPtNoIsoConversion  = new TH1F
-    ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax); 
-    fhPtNoIsoConversion->SetYTitle("N");
-    fhPtNoIsoConversion->SetXTitle("p_{T} (GeV/c)");
-    outputContainer->Add(fhPtNoIsoConversion) ;
+//    fhPtNoIsoConversion  = new TH1F
+//    ("hPtNoIsoConversion","Number of not isolated leading conversion #gamma",nptbins,ptmin,ptmax); 
+//    fhPtNoIsoConversion->SetYTitle("N");
+//    fhPtNoIsoConversion->SetXTitle("p_{T} (GeV/c)");
+//    outputContainer->Add(fhPtNoIsoConversion) ;
     
     fhPtNoIsoFragmentation  = new TH1F
     ("hPtNoIsoFragmentation","Number of not isolated leading fragmentation #gamma",nptbins,ptmin,ptmax); 
@@ -932,11 +1028,11 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
     fhPtNoIsoFragmentation->SetXTitle("p_{T} (GeV/c)");
     outputContainer->Add(fhPtNoIsoFragmentation) ;
     
-    fhPtNoIsoUnknown  = new TH1F
-    ("hPtNoIsoUnknown","Number of not isolated leading hadrons",nptbins,ptmin,ptmax); 
-    fhPtNoIsoUnknown->SetYTitle("N");
-    fhPtNoIsoUnknown->SetXTitle("p_{T} (GeV/c)");
-    outputContainer->Add(fhPtNoIsoUnknown) ;
+    fhPtNoIsoHadron  = new TH1F
+    ("hPtNoIsoHadron","Number of not isolated leading hadrons",nptbins,ptmin,ptmax); 
+    fhPtNoIsoHadron->SetYTitle("N");
+    fhPtNoIsoHadron->SetXTitle("p_{T} (GeV/c)");
+    outputContainer->Add(fhPtNoIsoHadron) ;
     
   }//Histos with MC
   
@@ -997,6 +1093,13 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
         fhPtSumIsolatedFragmentation[icone]->SetXTitle("p_{T} (GeV/c)");
         outputContainer->Add(fhPtSumIsolatedFragmentation[icone]) ; 
         
+        snprintf(name, buffersize,"hPtSumPi0_Cone_%d",icone);
+        snprintf(title, buffersize,"Candidate Pi0 cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
+        fhPtSumIsolatedPi0[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
+        fhPtSumIsolatedPi0[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
+        fhPtSumIsolatedPi0[icone]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhPtSumIsolatedPi0[icone]) ; 
+        
         snprintf(name, buffersize,"hPtSumPi0Decay_Cone_%d",icone);
         snprintf(title, buffersize,"Candidate Pi0Decay cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
         fhPtSumIsolatedPi0Decay[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
@@ -1018,19 +1121,19 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
         fhPtSumIsolatedOtherDecay[icone]->SetXTitle("p_{T} (GeV/c)");
         outputContainer->Add(fhPtSumIsolatedOtherDecay[icone]) ; 
         
-        snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone);
-        snprintf(title, buffersize,"Candidate Conversion cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
-        fhPtSumIsolatedConversion[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
-        fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
-        fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)");
-        outputContainer->Add(fhPtSumIsolatedConversion[icone]) ; 
+//        snprintf(name, buffersize,"hPtSumConversion_Cone_%d",icone);
+//        snprintf(title, buffersize,"Candidate Conversion cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
+//        fhPtSumIsolatedConversion[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
+//        fhPtSumIsolatedConversion[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
+//        fhPtSumIsolatedConversion[icone]->SetXTitle("p_{T} (GeV/c)");
+//        outputContainer->Add(fhPtSumIsolatedConversion[icone]) ; 
         
-        snprintf(name, buffersize,"hPtSumUnknown_Cone_%d",icone);
-        snprintf(title, buffersize,"Candidate Unknown cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
-        fhPtSumIsolatedUnknown[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
-        fhPtSumIsolatedUnknown[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
-        fhPtSumIsolatedUnknown[icone]->SetXTitle("p_{T} (GeV/c)");
-        outputContainer->Add(fhPtSumIsolatedUnknown[icone]) ; 
+        snprintf(name, buffersize,"hPtSumHadron_Cone_%d",icone);
+        snprintf(title, buffersize,"Candidate Hadron cone sum p_{T} for R = %2.2f vs candidate p_{T}",fConeSizes[icone]);
+        fhPtSumIsolatedHadron[icone]  = new TH2F(name, title,nptbins,ptmin,ptmax,nptsumbins,ptsummin,ptsummax);
+        fhPtSumIsolatedHadron[icone]->SetYTitle("#Sigma p_{T} (GeV/c)");
+        fhPtSumIsolatedHadron[icone]->SetXTitle("p_{T} (GeV/c)");
+        outputContainer->Add(fhPtSumIsolatedHadron[icone]) ; 
         
       }//Histos with MC
       
@@ -1206,6 +1309,18 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
           fhPtFracIsolatedFragmentation[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
           outputContainer->Add(fhPtFracIsolatedFragmentation[icone][ipt]) ; 
           
+          snprintf(name, buffersize,"hPtThresMCPi0_Cone_%d_Pt%d",icone,ipt);
+          snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+          fhPtThresIsolatedPi0[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+          fhPtThresIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+          outputContainer->Add(fhPtThresIsolatedPi0[icone][ipt]) ; 
+          
+          snprintf(name, buffersize,"hPtFracMCPi0_Cone_%d_Pt%d",icone,ipt);
+          snprintf(title, buffersize,"Isolated candidate Pi0 p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+          fhPtFracIsolatedPi0[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+          fhPtFracIsolatedPi0[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+          outputContainer->Add(fhPtFracIsolatedPi0[icone][ipt]) ;
+          
           snprintf(name, buffersize,"hPtThresMCPi0Decay_Cone_%d_Pt%d",icone,ipt);
           snprintf(title, buffersize,"Isolated candidate Pi0Decay p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
           fhPtThresIsolatedPi0Decay[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
@@ -1243,29 +1358,29 @@ TList *  AliAnaParticleIsolation::GetCreateOutputObjects()
           fhPtFracIsolatedOtherDecay[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
           outputContainer->Add(fhPtFracIsolatedOtherDecay[icone][ipt]) ;
           
-          snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt);
-          snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
-          fhPtThresIsolatedConversion[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
-          fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
-          outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ; 
+//          snprintf(name, buffersize,"hPtThresMCConversion_Cone_%d_Pt%d",icone,ipt);
+//          snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+//          fhPtThresIsolatedConversion[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+//          fhPtThresIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+//          outputContainer->Add(fhPtThresIsolatedConversion[icone][ipt]) ; 
           
-          snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt);
-          snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
-          fhPtFracIsolatedConversion[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
-          fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
-          outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ;
+//          snprintf(name, buffersize,"hPtFracMCConversion_Cone_%d_Pt%d",icone,ipt);
+//          snprintf(title, buffersize,"Isolated candidate Conversion p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+//          fhPtFracIsolatedConversion[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+//          fhPtFracIsolatedConversion[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+//          outputContainer->Add(fhPtFracIsolatedConversion[icone][ipt]) ;
           
-          snprintf(name, buffersize,"hPtThresMCUnknown_Cone_%d_Pt%d",icone,ipt);
-          snprintf(title, buffersize,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
-          fhPtThresIsolatedUnknown[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
-          fhPtThresIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
-          outputContainer->Add(fhPtThresIsolatedUnknown[icone][ipt]) ; 
+          snprintf(name, buffersize,"hPtThresMCHadron_Cone_%d_Pt%d",icone,ipt);
+          snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+          fhPtThresIsolatedHadron[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+          fhPtThresIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+          outputContainer->Add(fhPtThresIsolatedHadron[icone][ipt]) ; 
           
-          snprintf(name, buffersize,"hPtFracMCUnknown_Cone_%d_Pt%d",icone,ipt);
-          snprintf(title, buffersize,"Isolated candidate Unknown p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
-          fhPtFracIsolatedUnknown[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
-          fhPtFracIsolatedUnknown[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
-          outputContainer->Add(fhPtFracIsolatedUnknown[icone][ipt]) ;  
+          snprintf(name, buffersize,"hPtFracMCHadron_Cone_%d_Pt%d",icone,ipt);
+          snprintf(title, buffersize,"Isolated candidate Hadron p_{T} distribution for cone size %d and p_{T}^{th} %d",icone,ipt);
+          fhPtFracIsolatedHadron[icone][ipt]  = new TH1F(name, title,nptbins,ptmin,ptmax);
+          fhPtFracIsolatedHadron[icone][ipt]->SetXTitle("p_{T} (GeV/c)");
+          outputContainer->Add(fhPtFracIsolatedHadron[icone][ipt]) ;  
           
         }//Histos with MC
       }//icone loop
@@ -1640,6 +1755,12 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
           fhPhiIsoFragmentation ->Fill(pt,phi);
           fhEtaIsoFragmentation ->Fill(pt,eta);
         }
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))
+        {
+          fhPtIsoPi0  ->Fill(pt);
+          fhPhiIsoPi0 ->Fill(pt,phi);
+          fhEtaIsoPi0 ->Fill(pt,eta);
+        }        
         else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))
         {
           fhPtIsoPi0Decay  ->Fill(pt);
@@ -1658,17 +1779,17 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
           fhPhiIsoOtherDecay ->Fill(pt,phi);
           fhEtaIsoOtherDecay ->Fill(pt,eta);
         }
-        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))
-        {
-          fhPtIsoConversion  ->Fill(pt);
-          fhPhiIsoConversion ->Fill(pt,phi);
-          fhEtaIsoConversion ->Fill(pt,eta);
-        }
-        else // anything else
+//        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))
+//        {
+//          fhPtIsoConversion  ->Fill(pt);
+//          fhPhiIsoConversion ->Fill(pt,phi);
+//          fhEtaIsoConversion ->Fill(pt,eta);
+//        }
+        else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))// anything else but electrons
         {
-          fhPtIsoUnknown  ->Fill(pt);
-          fhPhiIsoUnknown ->Fill(pt,phi);
-          fhEtaIsoUnknown ->Fill(pt,eta);
+          fhPtIsoHadron  ->Fill(pt);
+          fhPhiIsoHadron ->Fill(pt,phi);
+          fhEtaIsoHadron ->Fill(pt,eta);
         }
       }//Histograms with MC
       
@@ -1689,13 +1810,14 @@ void  AliAnaParticleIsolation::MakeAnalysisFillHistograms()
       if(IsDataMC())
       {
         if     (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPhoton))        fhPtNoIsoMCPhoton     ->Fill(pt);
-        if     (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtNoIsoPi0Decay     ->Fill(pt);
+        if     (GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0))           fhPtNoIsoPi0          ->Fill(pt);
+        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtNoIsoPi0Decay     ->Fill(pt);
         else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtNoIsoEtaDecay     ->Fill(pt);
         else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtNoIsoOtherDecay   ->Fill(pt);
         else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCPrompt))        fhPtNoIsoPrompt       ->Fill(pt);
         else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(pt);
-        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))    fhPtNoIsoConversion   ->Fill(pt);
-        else                                                                                   fhPtNoIsoUnknown      ->Fill(pt);        
+//        else if(GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCConversion))    fhPtNoIsoConversion   ->Fill(pt);
+        else if(!GetMCAnalysisUtils()->CheckTagBit(mcTag,AliMCAnalysisUtils::kMCElectron))     fhPtNoIsoHadron      ->Fill(pt);        
       }
     }
   }// aod loop
@@ -1735,13 +1857,14 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
   if(IsDataMC())
   {
     if     (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton))        fhPtNoIsoMCPhoton     ->Fill(ptC);
-    if     (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtNoIsoPi0Decay     ->Fill(ptC);
+    if     (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0))           fhPtNoIsoPi0          ->Fill(ptC);
+    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtNoIsoPi0Decay     ->Fill(ptC);
     else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtNoIsoEtaDecay     ->Fill(ptC);
     else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtNoIsoOtherDecay   ->Fill(ptC);
     else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))        fhPtNoIsoPrompt       ->Fill(ptC);
     else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtNoIsoFragmentation->Fill(ptC);
-    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtNoIsoConversion   ->Fill(ptC);
-    else                                                                                 fhPtNoIsoUnknown      ->Fill(ptC);
+//    else if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtNoIsoConversion   ->Fill(ptC);
+    else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron))    fhPtNoIsoHadron      ->Fill(ptC);
   }
   
   if(decay) 
@@ -1879,12 +2002,13 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
         if(IsDataMC())
         {
           if     ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))        fhPtThresIsolatedPrompt[icone][ipt]       ->Fill(ptC) ;
-          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtThresIsolatedConversion[icone][ipt]   ->Fill(ptC) ;
+//          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtThresIsolatedConversion[icone][ipt]   ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtThresIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
+          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0))           fhPtThresIsolatedPi0[icone][ipt]           ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtThresIsolatedPi0Decay[icone][ipt]     ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtThresIsolatedEtaDecay[icone][ipt]     ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtThresIsolatedOtherDecay[icone][ipt]   ->Fill(ptC) ;
-          else                                                                                  fhPtThresIsolatedUnknown[icone][ipt]      ->Fill(ptC) ;
+          else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron))      fhPtThresIsolatedHadron[icone][ipt]      ->Fill(ptC) ;
         }
       }
       
@@ -1904,12 +2028,13 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
         if(IsDataMC())
         {
           if     ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))        fhPtFracIsolatedPrompt[icone][ipt]       ->Fill(ptC) ;
-          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtFracIsolatedConversion[icone][ipt]   ->Fill(ptC) ;
+//          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtFracIsolatedConversion[icone][ipt]   ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtFracIsolatedFragmentation[icone][ipt]->Fill(ptC) ;
+          else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0))           fhPtFracIsolatedPi0[icone][ipt]          ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtFracIsolatedPi0Decay[icone][ipt]     ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtFracIsolatedEtaDecay[icone][ipt]     ->Fill(ptC) ;
           else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtFracIsolatedOtherDecay[icone][ipt]   ->Fill(ptC) ;
-          else  fhPtFracIsolatedUnknown[icone][ipt]->Fill(ptC) ;
+          else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron))      fhPtFracIsolatedHadron[icone][ipt]->Fill(ptC) ;
         }
       }
       
@@ -1964,12 +2089,13 @@ void  AliAnaParticleIsolation::MakeSeveralICAnalysis(AliAODPWG4ParticleCorrelati
     if(IsDataMC())
     {
       if     ( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPrompt))        fhPtSumIsolatedPrompt[icone]       ->Fill(ptC,coneptsum) ;
-      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtSumIsolatedConversion[icone]   ->Fill(ptC,coneptsum) ;
+//      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion))    fhPtSumIsolatedConversion[icone]   ->Fill(ptC,coneptsum) ;
       else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCFragmentation)) fhPtSumIsolatedFragmentation[icone]->Fill(ptC,coneptsum) ;
+      else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0))           fhPtSumIsolatedPi0[icone]          ->Fill(ptC,coneptsum) ;
       else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPi0Decay))      fhPtSumIsolatedPi0Decay[icone]     ->Fill(ptC,coneptsum) ;
       else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay))      fhPtSumIsolatedEtaDecay[icone]     ->Fill(ptC,coneptsum) ;
       else if( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay))    fhPtSumIsolatedOtherDecay[icone]   ->Fill(ptC,coneptsum) ;
-      else  fhPtSumIsolatedUnknown[icone]->Fill(ptC,coneptsum) ;
+      else if(!GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCElectron))      fhPtSumIsolatedHadron[icone]->Fill(ptC,coneptsum) ;
     }
     
   }//cone size loop
index 3d323bc2d9b31733a156537db51e0261aa556be2..913b6b66a8fd08267a49385306f0c7778f01c959 100755 (executable)
@@ -167,6 +167,12 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   TH1F *   fhPtThresIsolatedFragmentation[5][5];  //! Isolated fragmentation gamma with pt threshold 
   TH1F *   fhPtFracIsolatedFragmentation[5][5];   //! Isolated fragmentation gamma with pt frac
   TH2F *   fhPtSumIsolatedFragmentation[5];       //! Isolated fragmentation gamma with threshold on cone pt sume
+  TH1F *   fhPtIsoPi0;                            //! Number of isolated pi0 (2 gamma)
+  TH2F *   fhPhiIsoPi0;                           //! Phi of isolated pi0 (2 gamma)
+  TH2F *   fhEtaIsoPi0;                           //! eta of isolated pi0 (2 gamma)
+  TH1F *   fhPtThresIsolatedPi0[5][5];            //! Isolated pi0 (2 gamma) with pt threshold 
+  TH1F *   fhPtFracIsolatedPi0[5][5];             //! Isolated pi0 (2 gamma) with pt frac
+  TH2F *   fhPtSumIsolatedPi0[5];                 //! Isolated pi0 (2 gamma) with threshold on cone pt sum
   TH1F *   fhPtIsoPi0Decay;                       //! Number of isolated pi0 decay gamma 
   TH2F *   fhPhiIsoPi0Decay;                      //! Phi of isolated pi0 decay gamma
   TH2F *   fhEtaIsoPi0Decay;                      //! eta of isolated pi0 decay gamma
@@ -185,29 +191,30 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   TH1F *   fhPtThresIsolatedOtherDecay[5][5];     //! Isolated OtherDecay gamma with pt threshold 
   TH1F *   fhPtFracIsolatedOtherDecay[5][5];      //! Isolated OtherDecay gamma with pt frac
   TH2F *   fhPtSumIsolatedOtherDecay[5];          //! Isolated OtherDecay gamma with threshold on cone pt sume 
-  TH1F *   fhPtIsoConversion;                     //! Number of isolated Conversion gamma 
-  TH2F *   fhPhiIsoConversion;                    //! Phi of isolated Conversion gamma
-  TH2F *   fhEtaIsoConversion;                    //! eta of isolated Conversion gamma
-  TH1F *   fhPtThresIsolatedConversion[5][5];     //! Isolated Conversion gamma with pt threshold 
-  TH1F *   fhPtFracIsolatedConversion[5][5];      //! Isolated Conversion gamma with pt frac
-  TH2F *   fhPtSumIsolatedConversion[5];          //! Isolated Conversion gamma with threshold on cone pt sume
-  TH1F *   fhPtIsoUnknown;                        //! Number of isolated Unknow
-  TH2F *   fhPhiIsoUnknown;                       //! Phi of isolated Unknown
-  TH2F *   fhEtaIsoUnknown;                       //! eta of isolated Unknown
-  TH1F *   fhPtThresIsolatedUnknown[5][5];        //! Isolated Unknown gamma with pt threshold 
-  TH1F *   fhPtFracIsolatedUnknown[5][5];         //! Isolated Unknown gamma with pt frac
-  TH2F *   fhPtSumIsolatedUnknown[5];             //! Isolated Unknown gamma with threshold on cone pt sume
+//  TH1F *   fhPtIsoConversion;                     //! Number of isolated Conversion gamma 
+//  TH2F *   fhPhiIsoConversion;                    //! Phi of isolated Conversion gamma
+//  TH2F *   fhEtaIsoConversion;                    //! eta of isolated Conversion gamma
+//  TH1F *   fhPtThresIsolatedConversion[5][5];     //! Isolated Conversion gamma with pt threshold 
+//  TH1F *   fhPtFracIsolatedConversion[5][5];      //! Isolated Conversion gamma with pt frac
+//  TH2F *   fhPtSumIsolatedConversion[5];          //! Isolated Conversion gamma with threshold on cone pt sume
+  TH1F *   fhPtIsoHadron;                        //! Number of isolated Hadro
+  TH2F *   fhPhiIsoHadron;                       //! Phi of isolated Hadron
+  TH2F *   fhEtaIsoHadron;                       //! eta of isolated Hadron
+  TH1F *   fhPtThresIsolatedHadron[5][5];        //! Isolated Hadron gamma with pt threshold 
+  TH1F *   fhPtFracIsolatedHadron[5][5];         //! Isolated Hadron gamma with pt frac
+  TH2F *   fhPtSumIsolatedHadron[5];             //! Isolated Hadron gamma with threshold on cone pt sume
 
   // Multi Cut analysis Several IC
+  TH1F *   fhPtNoIsoPi0;                          //! Number of not isolated leading pi0 (2 gamma)
   TH1F *   fhPtNoIsoPi0Decay;                     //! Number of not isolated leading pi0 decay gamma 
   TH1F *   fhPtNoIsoEtaDecay;                     //! Number of not isolated leading eta decay gamma 
   TH1F *   fhPtNoIsoOtherDecay;                   //! Number of not isolated leading other decay gamma 
   TH1F *   fhPtNoIsoPrompt;                       //! Number of not isolated leading prompt gamma 
   TH1F *   fhPtIsoMCPhoton;                       //! Number of isolated leading gamma 
   TH1F *   fhPtNoIsoMCPhoton;                     //! Number of not isolated leading gamma 
-  TH1F *   fhPtNoIsoConversion;                   //! Number of not isolated leading conversion gamma 
+//  TH1F *   fhPtNoIsoConversion;                   //! Number of not isolated leading conversion gamma 
   TH1F *   fhPtNoIsoFragmentation;                //! Number of not isolated leading fragmentation gamma 
-  TH1F *   fhPtNoIsoUnknown;                      //! Number of not isolated leading hadrons 
+  TH1F *   fhPtNoIsoHadron;                      //! Number of not isolated leading hadrons 
   
   TH2F *   fhSumPtLeadingPt[5] ;                  //! Sum Pt in the cone
   TH2F *   fhPtLeadingPt[5] ;                     //! Particle Pt in the cone
@@ -254,7 +261,13 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   TH2F *   fhELambda0SSBkg;                       //! Shower shape of non isolated photons close to isolation threshold (do not apply SS cut previously)
   TH2F *   fhELambda0TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
   TH2F *   fhELambda1TRD[2];                      //! Shower shape of (non) isolated photons, SM behind TRD (do not apply SS cut previously)
-  
+  TH2F *   fhELambda0MCPhoton[2];                 //! Shower shape of (non) isolated photon candidates originated by particle photon not decay (do not apply SS cut previously)
+  TH2F *   fhELambda0MCPi0[2];                    //! Shower shape of (non) isolated photon candidates originated by particle 2 merged pi0 photons (do not apply SS cut previously)
+  TH2F *   fhELambda0MCPi0Decay[2];               //! Shower shape of (non) isolated photon candidates originated by particle pi0 decay photon (do not apply SS cut previously)
+  TH2F *   fhELambda0MCEtaDecay[2];               //! Shower shape of (non) isolated photon candidates originated by particle eta decay photon (do not apply SS cut previously)
+  TH2F *   fhELambda0MCOtherDecay[2];             //! Shower shape of (non) isolated photon candidates originated by particle other decay photon (do not apply SS cut previously)
+  TH2F *   fhELambda0MCHadron[2];                 //! Shower shape of (non) isolated photon candidates originated by particle other hadrons (do not apply SS cut previously)
+
   // Local maxima
   TH2F *   fhNLocMax[2];                          //! number of maxima in selected clusters
   TH2F *   fhELambda0LocMax1[2] ;                 //! E vs lambda0 of selected cluster, 1 local maxima in cluster 
@@ -275,7 +288,7 @@ class AliAnaParticleIsolation : public AliAnaCaloTrackCorrBaseClass {
   AliAnaParticleIsolation(              const AliAnaParticleIsolation & iso) ; // cpy ctor
   AliAnaParticleIsolation & operator = (const AliAnaParticleIsolation & iso) ; // cpy assignment
   
-  ClassDef(AliAnaParticleIsolation,15)
+  ClassDef(AliAnaParticleIsolation,16)
 } ;
 
 
index b427d35ef661008101493fe070d21b4fb7b32667..6d9ce93402c07a18c21df2a20878e9144de9c12e 100755 (executable)
@@ -57,7 +57,7 @@ AliAnaPhoton::AliAnaPhoton() :
     fMinDist(0.),                 fMinDist2(0.),                fMinDist3(0.), 
     fRejectTrackMatch(0),         fFillTMHisto(kFALSE),
     fTimeCutMin(-10000),          fTimeCutMax(10000),         
-    fNCellsCut(0),                fFillSSHistograms(kFALSE),        
+    fNCellsCut(0),                fFillSSHistograms(kFALSE),    fFillOnlySimpleSSHisto(1),   
     fNOriginHistograms(8),        fNPrimaryHistograms(4),
 
     // Histograms
@@ -617,7 +617,7 @@ void  AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t
   Float_t l0   = 0., l1   = 0.;
   Float_t dispp= 0., dEta = 0., dPhi    = 0.; 
   Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;  
-  if(fCalorimeter == "EMCAL")
+  if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
   {
     GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
                                                                                  l0, l1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
@@ -677,29 +677,32 @@ void  AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t
     }
   }// if track-matching was of, check effect of matching residual cut  
   
-  if(energy < 2)
-  {
-    fhNCellsLam0LowE ->Fill(ncells,lambda0);
-    fhNCellsLam1LowE ->Fill(ncells,lambda1);
-    fhNCellsDispLowE ->Fill(ncells,disp);
-    
-    fhLam1Lam0LowE  ->Fill(lambda1,lambda0);
-    fhLam0DispLowE  ->Fill(lambda0,disp);
-    fhDispLam1LowE  ->Fill(disp,lambda1);
-    fhEtaLam0LowE   ->Fill(eta,lambda0);
-    fhPhiLam0LowE   ->Fill(phi,lambda0);  
-  }
-  else 
-  {
-    fhNCellsLam0HighE ->Fill(ncells,lambda0);
-    fhNCellsLam1HighE ->Fill(ncells,lambda1);
-    fhNCellsDispHighE ->Fill(ncells,disp);
-
-    fhLam1Lam0HighE  ->Fill(lambda1,lambda0);
-    fhLam0DispHighE  ->Fill(lambda0,disp);
-    fhDispLam1HighE  ->Fill(disp,lambda1);
-    fhEtaLam0HighE   ->Fill(eta, lambda0);
-    fhPhiLam0HighE   ->Fill(phi, lambda0);
+  
+  if(!fFillOnlySimpleSSHisto){
+    if(energy < 2)
+    {
+      fhNCellsLam0LowE ->Fill(ncells,lambda0);
+      fhNCellsLam1LowE ->Fill(ncells,lambda1);
+      fhNCellsDispLowE ->Fill(ncells,disp);
+      
+      fhLam1Lam0LowE  ->Fill(lambda1,lambda0);
+      fhLam0DispLowE  ->Fill(lambda0,disp);
+      fhDispLam1LowE  ->Fill(disp,lambda1);
+      fhEtaLam0LowE   ->Fill(eta,lambda0);
+      fhPhiLam0LowE   ->Fill(phi,lambda0);  
+    }
+    else 
+    {
+      fhNCellsLam0HighE ->Fill(ncells,lambda0);
+      fhNCellsLam1HighE ->Fill(ncells,lambda1);
+      fhNCellsDispHighE ->Fill(ncells,disp);
+      
+      fhLam1Lam0HighE  ->Fill(lambda1,lambda0);
+      fhLam0DispHighE  ->Fill(lambda0,disp);
+      fhDispLam1HighE  ->Fill(disp,lambda1);
+      fhEtaLam0HighE   ->Fill(eta, lambda0);
+      fhPhiLam0HighE   ->Fill(phi, lambda0);
+    }
   }
   
   if(IsDataMC())
@@ -856,44 +859,46 @@ void  AliAnaPhoton::FillShowerShapeHistograms(AliVCluster* cluster, const Int_t
     fhMCNCellsE            [mcIndex]->Fill(energy, ncells);
     fhMCMaxCellDiffClusterE[mcIndex]->Fill(energy, maxCellFraction);
     
-    if     (energy < 2.)
-    {
-      fhMCLambda0vsClusterMaxCellDiffE0[mcIndex]->Fill(lambda0, maxCellFraction);
-      fhMCNCellsvsClusterMaxCellDiffE0 [mcIndex]->Fill(ncells,  maxCellFraction);
-    }
-    else if(energy < 6.)
-    {
-      fhMCLambda0vsClusterMaxCellDiffE2[mcIndex]->Fill(lambda0, maxCellFraction);
-      fhMCNCellsvsClusterMaxCellDiffE2 [mcIndex]->Fill(ncells,  maxCellFraction);
-    }
-    else
-    {
-      fhMCLambda0vsClusterMaxCellDiffE6[mcIndex]->Fill(lambda0, maxCellFraction);
-      fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells,  maxCellFraction);
-    }
-    
-    if(fCalorimeter == "EMCAL")
+    if(!fFillOnlySimpleSSHisto)
     {
-      fhMCEDispEta        [mcIndex]-> Fill(energy,dEta);
-      fhMCEDispPhi        [mcIndex]-> Fill(energy,dPhi);
-      fhMCESumEtaPhi      [mcIndex]-> Fill(energy,sEtaPhi);
-      fhMCEDispEtaPhiDiff [mcIndex]-> Fill(energy,dPhi-dEta);
-      if(dEta+dPhi>0)fhMCESphericity[mcIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi));  
-      
-      Int_t ebin = -1;
-      if      (energy < 2 ) ebin = 0;
-      else if (energy < 4 ) ebin = 1;
-      else if (energy < 6 ) ebin = 2;
-      else if (energy < 10) ebin = 3;
-      else if (energy < 15) ebin = 4;  
-      else if (energy < 20) ebin = 5;  
-      else                  ebin = 6;  
-      
-      fhMCDispEtaDispPhi[ebin][mcIndex]->Fill(dEta   ,dPhi);
-      fhMCLambda0DispEta[ebin][mcIndex]->Fill(lambda0,dEta);
-      fhMCLambda0DispPhi[ebin][mcIndex]->Fill(lambda0,dPhi);      
+      if     (energy < 2.)
+      {
+        fhMCLambda0vsClusterMaxCellDiffE0[mcIndex]->Fill(lambda0, maxCellFraction);
+        fhMCNCellsvsClusterMaxCellDiffE0 [mcIndex]->Fill(ncells,  maxCellFraction);
+      }
+      else if(energy < 6.)
+      {
+        fhMCLambda0vsClusterMaxCellDiffE2[mcIndex]->Fill(lambda0, maxCellFraction);
+        fhMCNCellsvsClusterMaxCellDiffE2 [mcIndex]->Fill(ncells,  maxCellFraction);
+      }
+      else
+      {
+        fhMCLambda0vsClusterMaxCellDiffE6[mcIndex]->Fill(lambda0, maxCellFraction);
+        fhMCNCellsvsClusterMaxCellDiffE6 [mcIndex]->Fill(ncells,  maxCellFraction);
+      }
+      
+      if(fCalorimeter == "EMCAL")
+      {
+        fhMCEDispEta        [mcIndex]-> Fill(energy,dEta);
+        fhMCEDispPhi        [mcIndex]-> Fill(energy,dPhi);
+        fhMCESumEtaPhi      [mcIndex]-> Fill(energy,sEtaPhi);
+        fhMCEDispEtaPhiDiff [mcIndex]-> Fill(energy,dPhi-dEta);
+        if(dEta+dPhi>0)fhMCESphericity[mcIndex]-> Fill(energy,(dPhi-dEta)/(dEta+dPhi));  
+        
+        Int_t ebin = -1;
+        if      (energy < 2 ) ebin = 0;
+        else if (energy < 4 ) ebin = 1;
+        else if (energy < 6 ) ebin = 2;
+        else if (energy < 10) ebin = 3;
+        else if (energy < 15) ebin = 4;  
+        else if (energy < 20) ebin = 5;  
+        else                  ebin = 6;  
+        
+        fhMCDispEtaDispPhi[ebin][mcIndex]->Fill(dEta   ,dPhi);
+        fhMCLambda0DispEta[ebin][mcIndex]->Fill(lambda0,dEta);
+        fhMCLambda0DispPhi[ebin][mcIndex]->Fill(lambda0,dPhi);      
+      }
     }
-    
   }//MC data
   
 }
@@ -1217,156 +1222,159 @@ TList *  AliAnaPhoton::GetCreateOutputObjects()
       } 
     } 
     
-    fhNCellsLam0LowE  = new TH2F ("hNCellsLam0LowE","N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsLam0LowE->SetXTitle("N_{cells}");
-    fhNCellsLam0LowE->SetYTitle("#lambda_{0}^{2}");
-    outputContainer->Add(fhNCellsLam0LowE);  
-    
-    fhNCellsLam0HighE  = new TH2F ("hNCellsLam0HighE","N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsLam0HighE->SetXTitle("N_{cells}");
-    fhNCellsLam0HighE->SetYTitle("#lambda_{0}^{2}");
-    outputContainer->Add(fhNCellsLam0HighE);  
-    
-    fhNCellsLam1LowE  = new TH2F ("hNCellsLam1LowE","N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsLam1LowE->SetXTitle("N_{cells}");
-    fhNCellsLam1LowE->SetYTitle("#lambda_{0}^{2}");
-    outputContainer->Add(fhNCellsLam1LowE);  
-    
-    fhNCellsLam1HighE  = new TH2F ("hNCellsLam1HighE","N_{cells} in cluster vs #lambda_{1}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsLam1HighE->SetXTitle("N_{cells}");
-    fhNCellsLam1HighE->SetYTitle("#lambda_{0}^{2}");
-    outputContainer->Add(fhNCellsLam1HighE);  
-    
-    fhNCellsDispLowE  = new TH2F ("hNCellsDispLowE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsDispLowE->SetXTitle("N_{cells}");
-    fhNCellsDispLowE->SetYTitle("D^{2}");
-    outputContainer->Add(fhNCellsDispLowE);  
-    
-    fhNCellsDispHighE  = new TH2F ("hNCellsDispHighE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
-    fhNCellsDispHighE->SetXTitle("N_{cells}");
-    fhNCellsDispHighE->SetYTitle("D^{2}");
-    outputContainer->Add(fhNCellsDispHighE);  
-    
-    fhEtaLam0LowE  = new TH2F ("hEtaLam0LowE","#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); 
-    fhEtaLam0LowE->SetYTitle("#lambda_{0}^{2}");
-    fhEtaLam0LowE->SetXTitle("#eta");
-    outputContainer->Add(fhEtaLam0LowE);  
-    
-    fhPhiLam0LowE  = new TH2F ("hPhiLam0LowE","#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
-    fhPhiLam0LowE->SetYTitle("#lambda_{0}^{2}");
-    fhPhiLam0LowE->SetXTitle("#phi");
-    outputContainer->Add(fhPhiLam0LowE);  
-    
-    fhEtaLam0HighE  = new TH2F ("hEtaLam0HighE","#eta vs #lambda_{0}^{2}, E > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); 
-    fhEtaLam0HighE->SetYTitle("#lambda_{0}^{2}");
-    fhEtaLam0HighE->SetXTitle("#eta");
-    outputContainer->Add(fhEtaLam0HighE);  
-    
-    fhPhiLam0HighE  = new TH2F ("hPhiLam0HighE","#phi vs #lambda_{0}^{2}, E > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
-    fhPhiLam0HighE->SetYTitle("#lambda_{0}^{2}");
-    fhPhiLam0HighE->SetXTitle("#phi");
-    outputContainer->Add(fhPhiLam0HighE);  
-    
-    fhLam1Lam0LowE  = new TH2F ("hLam1Lam0LowE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhLam1Lam0LowE->SetYTitle("#lambda_{0}^{2}");
-    fhLam1Lam0LowE->SetXTitle("#lambda_{1}^{2}");
-    outputContainer->Add(fhLam1Lam0LowE);  
-    
-    fhLam1Lam0HighE  = new TH2F ("hLam1Lam0HighE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhLam1Lam0HighE->SetYTitle("#lambda_{0}^{2}");
-    fhLam1Lam0HighE->SetXTitle("#lambda_{1}^{2}");
-    outputContainer->Add(fhLam1Lam0HighE);  
-    
-    fhLam0DispLowE  = new TH2F ("hLam0DispLowE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhLam0DispLowE->SetXTitle("#lambda_{0}^{2}");
-    fhLam0DispLowE->SetYTitle("D^{2}");
-    outputContainer->Add(fhLam0DispLowE);  
-    
-    fhLam0DispHighE  = new TH2F ("hLam0DispHighE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhLam0DispHighE->SetXTitle("#lambda_{0}^{2}");
-    fhLam0DispHighE->SetYTitle("D^{2}");
-    outputContainer->Add(fhLam0DispHighE);  
-    
-    fhDispLam1LowE  = new TH2F ("hDispLam1LowE","Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhDispLam1LowE->SetXTitle("D^{2}");
-    fhDispLam1LowE->SetYTitle("#lambda_{1}^{2}");
-    outputContainer->Add(fhDispLam1LowE);  
-    
-    fhDispLam1HighE  = new TH2F ("hDispLam1HighE","Dispersion^{2} vs #lambda_{1^{2}} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
-    fhDispLam1HighE->SetXTitle("D^{2}");
-    fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}");
-    outputContainer->Add(fhDispLam1HighE);  
-    
-    if(fCalorimeter == "EMCAL")
+    if(!fFillOnlySimpleSSHisto)
     {
-      fhDispEtaE  = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhDispEtaE->SetXTitle("E (GeV)");
-      fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}");
-      outputContainer->Add(fhDispEtaE);     
-      
-      fhDispPhiE  = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhDispPhiE->SetXTitle("E (GeV)");
-      fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}");
-      outputContainer->Add(fhDispPhiE);  
-      
-      fhSumEtaE  = new TH2F ("hSumEtaE","#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhSumEtaE->SetXTitle("E (GeV)");
-      fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}");
-      outputContainer->Add(fhSumEtaE);     
-      
-      fhSumPhiE  = new TH2F ("hSumPhiE","#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",  
-                             nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhSumPhiE->SetXTitle("E (GeV)");
-      fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}");
-      outputContainer->Add(fhSumPhiE);  
-      
-      fhSumEtaPhiE  = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",  
-                                nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
-      fhSumEtaPhiE->SetXTitle("E (GeV)");
-      fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}");
-      outputContainer->Add(fhSumEtaPhiE);
-      
-      fhDispEtaPhiDiffE  = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", 
-                                     nptbins,ptmin,ptmax,200, -10,10); 
-      fhDispEtaPhiDiffE->SetXTitle("E (GeV)");
-      fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
-      outputContainer->Add(fhDispEtaPhiDiffE);    
-      
-      fhSphericityE  = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",  
-                                 nptbins,ptmin,ptmax, 200, -1,1); 
-      fhSphericityE->SetXTitle("E (GeV)");
-      fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
-      outputContainer->Add(fhSphericityE);
-      
-      fhDispSumEtaDiffE  = new TH2F ("hDispSumEtaDiffE","#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01); 
-      fhDispSumEtaDiffE->SetXTitle("E (GeV)");
-      fhDispSumEtaDiffE->SetYTitle("#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
-      outputContainer->Add(fhDispSumEtaDiffE);     
-      
-      fhDispSumPhiDiffE  = new TH2F ("hDispSumPhiDiffE","#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01); 
-      fhDispSumPhiDiffE->SetXTitle("E (GeV)");
-      fhDispSumPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
-      outputContainer->Add(fhDispSumPhiDiffE);  
-      
-      for(Int_t i = 0; i < 7; i++)
+      fhNCellsLam0LowE  = new TH2F ("hNCellsLam0LowE","N_{cells} in cluster vs #lambda_{0}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsLam0LowE->SetXTitle("N_{cells}");
+      fhNCellsLam0LowE->SetYTitle("#lambda_{0}^{2}");
+      outputContainer->Add(fhNCellsLam0LowE);  
+      
+      fhNCellsLam0HighE  = new TH2F ("hNCellsLam0HighE","N_{cells} in cluster vs #lambda_{0}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsLam0HighE->SetXTitle("N_{cells}");
+      fhNCellsLam0HighE->SetYTitle("#lambda_{0}^{2}");
+      outputContainer->Add(fhNCellsLam0HighE);  
+      
+      fhNCellsLam1LowE  = new TH2F ("hNCellsLam1LowE","N_{cells} in cluster vs #lambda_{1}^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsLam1LowE->SetXTitle("N_{cells}");
+      fhNCellsLam1LowE->SetYTitle("#lambda_{0}^{2}");
+      outputContainer->Add(fhNCellsLam1LowE);  
+      
+      fhNCellsLam1HighE  = new TH2F ("hNCellsLam1HighE","N_{cells} in cluster vs #lambda_{1}^{2}, E > 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsLam1HighE->SetXTitle("N_{cells}");
+      fhNCellsLam1HighE->SetYTitle("#lambda_{0}^{2}");
+      outputContainer->Add(fhNCellsLam1HighE);  
+      
+      fhNCellsDispLowE  = new TH2F ("hNCellsDispLowE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsDispLowE->SetXTitle("N_{cells}");
+      fhNCellsDispLowE->SetYTitle("D^{2}");
+      outputContainer->Add(fhNCellsDispLowE);  
+      
+      fhNCellsDispHighE  = new TH2F ("hNCellsDispHighE","N_{cells} in cluster vs dispersion^{2}, E < 2 GeV", nbins,nmin, nmax, ssbins,ssmin,ssmax); 
+      fhNCellsDispHighE->SetXTitle("N_{cells}");
+      fhNCellsDispHighE->SetYTitle("D^{2}");
+      outputContainer->Add(fhNCellsDispHighE);  
+      
+      fhEtaLam0LowE  = new TH2F ("hEtaLam0LowE","#eta vs #lambda_{0}^{2}, E < 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); 
+      fhEtaLam0LowE->SetYTitle("#lambda_{0}^{2}");
+      fhEtaLam0LowE->SetXTitle("#eta");
+      outputContainer->Add(fhEtaLam0LowE);  
+      
+      fhPhiLam0LowE  = new TH2F ("hPhiLam0LowE","#phi vs #lambda_{0}^{2}, E < 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
+      fhPhiLam0LowE->SetYTitle("#lambda_{0}^{2}");
+      fhPhiLam0LowE->SetXTitle("#phi");
+      outputContainer->Add(fhPhiLam0LowE);  
+      
+      fhEtaLam0HighE  = new TH2F ("hEtaLam0HighE","#eta vs #lambda_{0}^{2}, E > 2 GeV", netabins,etamin,etamax, ssbins,ssmin,ssmax); 
+      fhEtaLam0HighE->SetYTitle("#lambda_{0}^{2}");
+      fhEtaLam0HighE->SetXTitle("#eta");
+      outputContainer->Add(fhEtaLam0HighE);  
+      
+      fhPhiLam0HighE  = new TH2F ("hPhiLam0HighE","#phi vs #lambda_{0}^{2}, E > 2 GeV", nphibins,phimin,phimax, ssbins,ssmin,ssmax); 
+      fhPhiLam0HighE->SetYTitle("#lambda_{0}^{2}");
+      fhPhiLam0HighE->SetXTitle("#phi");
+      outputContainer->Add(fhPhiLam0HighE);  
+      
+      fhLam1Lam0LowE  = new TH2F ("hLam1Lam0LowE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhLam1Lam0LowE->SetYTitle("#lambda_{0}^{2}");
+      fhLam1Lam0LowE->SetXTitle("#lambda_{1}^{2}");
+      outputContainer->Add(fhLam1Lam0LowE);  
+      
+      fhLam1Lam0HighE  = new TH2F ("hLam1Lam0HighE","#lambda_{0}^{2} vs #lambda_{1}^{2} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhLam1Lam0HighE->SetYTitle("#lambda_{0}^{2}");
+      fhLam1Lam0HighE->SetXTitle("#lambda_{1}^{2}");
+      outputContainer->Add(fhLam1Lam0HighE);  
+      
+      fhLam0DispLowE  = new TH2F ("hLam0DispLowE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhLam0DispLowE->SetXTitle("#lambda_{0}^{2}");
+      fhLam0DispLowE->SetYTitle("D^{2}");
+      outputContainer->Add(fhLam0DispLowE);  
+      
+      fhLam0DispHighE  = new TH2F ("hLam0DispHighE","#lambda_{0}^{2} vs dispersion^{2} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhLam0DispHighE->SetXTitle("#lambda_{0}^{2}");
+      fhLam0DispHighE->SetYTitle("D^{2}");
+      outputContainer->Add(fhLam0DispHighE);  
+      
+      fhDispLam1LowE  = new TH2F ("hDispLam1LowE","Dispersion^{2} vs #lambda_{1}^{2} in cluster of E < 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhDispLam1LowE->SetXTitle("D^{2}");
+      fhDispLam1LowE->SetYTitle("#lambda_{1}^{2}");
+      outputContainer->Add(fhDispLam1LowE);  
+      
+      fhDispLam1HighE  = new TH2F ("hDispLam1HighE","Dispersion^{2} vs #lambda_{1^{2}} in cluster of E > 2 GeV",  ssbins,ssmin,ssmax, ssbins,ssmin,ssmax); 
+      fhDispLam1HighE->SetXTitle("D^{2}");
+      fhDispLam1HighE->SetYTitle("#lambda_{1}^{2}");
+      outputContainer->Add(fhDispLam1HighE);  
+      
+      if(fCalorimeter == "EMCAL")
       {
-        fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
-                                            ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}");
-        fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-        outputContainer->Add(fhDispEtaDispPhi[i]); 
+        fhDispEtaE  = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhDispEtaE->SetXTitle("E (GeV)");
+        fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}");
+        outputContainer->Add(fhDispEtaE);     
+        
+        fhDispPhiE  = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhDispPhiE->SetXTitle("E (GeV)");
+        fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}");
+        outputContainer->Add(fhDispPhiE);  
+        
+        fhSumEtaE  = new TH2F ("hSumEtaE","#delta^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhSumEtaE->SetXTitle("E (GeV)");
+        fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}");
+        outputContainer->Add(fhSumEtaE);     
+        
+        fhSumPhiE  = new TH2F ("hSumPhiE","#delta^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",  
+                               nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhSumPhiE->SetXTitle("E (GeV)");
+        fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}");
+        outputContainer->Add(fhSumPhiE);  
+        
+        fhSumEtaPhiE  = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",  
+                                  nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
+        fhSumEtaPhiE->SetXTitle("E (GeV)");
+        fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}");
+        outputContainer->Add(fhSumEtaPhiE);
+        
+        fhDispEtaPhiDiffE  = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", 
+                                       nptbins,ptmin,ptmax,200, -10,10); 
+        fhDispEtaPhiDiffE->SetXTitle("E (GeV)");
+        fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
+        outputContainer->Add(fhDispEtaPhiDiffE);    
         
-        fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
-                                        ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}");
-        fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
-        outputContainer->Add(fhLambda0DispEta[i]);       
+        fhSphericityE  = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",  
+                                   nptbins,ptmin,ptmax, 200, -1,1); 
+        fhSphericityE->SetXTitle("E (GeV)");
+        fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
+        outputContainer->Add(fhSphericityE);
         
-        fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), 
-                                        ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}");
-        fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-        outputContainer->Add(fhLambda0DispPhi[i]);         
+        fhDispSumEtaDiffE  = new TH2F ("hDispSumEtaDiffE","#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01); 
+        fhDispSumEtaDiffE->SetXTitle("E (GeV)");
+        fhDispSumEtaDiffE->SetYTitle("#sigma^{2}_{#eta #eta} - #delta^{2}_{#eta #eta} / average");
+        outputContainer->Add(fhDispSumEtaDiffE);     
+        
+        fhDispSumPhiDiffE  = new TH2F ("hDispSumPhiDiffE","#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average vs E",  nptbins,ptmin,ptmax, 200,-0.01,0.01); 
+        fhDispSumPhiDiffE->SetXTitle("E (GeV)");
+        fhDispSumPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi} - #delta^{2}_{#phi #phi} / average");
+        outputContainer->Add(fhDispSumPhiDiffE);  
+        
+        for(Int_t i = 0; i < 7; i++)
+        {
+          fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}");
+          fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+          outputContainer->Add(fhDispEtaDispPhi[i]); 
+          
+          fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}");
+          fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
+          outputContainer->Add(fhLambda0DispEta[i]);       
+          
+          fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}");
+          fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+          outputContainer->Add(fhLambda0DispPhi[i]);         
+        }
       }
     }
   } // Shower shape
@@ -1501,7 +1509,6 @@ TList *  AliAnaPhoton::GetCreateOutputObjects()
     
     if(IsDataMC())
     {
-      
       fhTrackMatchedDEtaMCNoOverlap[0]  = new TH2F
       ("hTrackMatchedDEtaMCNoOverlapNoCut",
        "d#eta of cluster-track vs cluster energy, no other MC particles overlap",
@@ -1818,109 +1825,111 @@ TList *  AliAnaPhoton::GetCreateOutputObjects()
         fhMCMaxCellDiffClusterE[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
         outputContainer->Add(fhMCMaxCellDiffClusterE[i]);  
         
-        fhMCLambda0vsClusterMaxCellDiffE0[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
-                                                         Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
-                                                         ssbins,ssmin,ssmax,500,0,1.); 
-        fhMCLambda0vsClusterMaxCellDiffE0[i]->SetXTitle("#lambda_{0}^{2}");
-        fhMCLambda0vsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
-        outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE0[i]) ; 
-        
-        fhMCLambda0vsClusterMaxCellDiffE2[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
-                                                         Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
-                                                         ssbins,ssmin,ssmax,500,0,1.); 
-        fhMCLambda0vsClusterMaxCellDiffE2[i]->SetXTitle("#lambda_{0}^{2}");
-        fhMCLambda0vsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
-        outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE2[i]) ; 
-        
-        fhMCLambda0vsClusterMaxCellDiffE6[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
-                                                         Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()),
-                                                         ssbins,ssmin,ssmax,500,0,1.); 
-        fhMCLambda0vsClusterMaxCellDiffE6[i]->SetXTitle("#lambda_{0}^{2}");
-        fhMCLambda0vsClusterMaxCellDiffE6[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
-        outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE6[i]) ; 
-        
-        fhMCNCellsvsClusterMaxCellDiffE0[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
-                                                        Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
-                                                        nbins/5,nmin,nmax/5,500,0,1.); 
-        fhMCNCellsvsClusterMaxCellDiffE0[i]->SetXTitle("N cells in cluster");
-        fhMCNCellsvsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
-        outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE0[i]) ; 
-        
-        fhMCNCellsvsClusterMaxCellDiffE2[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
-                                                        Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
-                                                        nbins/5,nmin,nmax/5,500,0,1.); 
-        fhMCNCellsvsClusterMaxCellDiffE2[i]->SetXTitle("N cells in cluster");
-        fhMCNCellsvsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
-        outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE2[i]) ; 
-        
-        fhMCNCellsvsClusterMaxCellDiffE6[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
-                                                        Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()),
-                                                        nbins/5,nmin,nmax/5,500,0,1.); 
-        fhMCNCellsvsClusterMaxCellDiffE6[i]->SetXTitle("N cells in cluster");
-        fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("E (GeV)");
-        outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ; 
-        
-        if(fCalorimeter=="EMCAL")
+        if(!fFillOnlySimpleSSHisto)
         {
-          fhMCEDispEta[i]  = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()),
-                                       Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()),
-                                       nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-          fhMCEDispEta[i]->SetXTitle("E (GeV)");
-          fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
-          outputContainer->Add(fhMCEDispEta[i]);     
+          fhMCLambda0vsClusterMaxCellDiffE0[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
+                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
+                                                           ssbins,ssmin,ssmax,500,0,1.); 
+          fhMCLambda0vsClusterMaxCellDiffE0[i]->SetXTitle("#lambda_{0}^{2}");
+          fhMCLambda0vsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
+          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE0[i]) ; 
+          
+          fhMCLambda0vsClusterMaxCellDiffE2[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
+                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
+                                                           ssbins,ssmin,ssmax,500,0,1.); 
+          fhMCLambda0vsClusterMaxCellDiffE2[i]->SetXTitle("#lambda_{0}^{2}");
+          fhMCLambda0vsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
+          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE2[i]) ; 
           
-          fhMCEDispPhi[i]  = new TH2F (Form("hEDispPhiE_MC%s",pnamess[i].Data()),
-                                       Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].Data()),
-                                       nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-          fhMCEDispPhi[i]->SetXTitle("E (GeV)");
-          fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-          outputContainer->Add(fhMCEDispPhi[i]);  
+          fhMCLambda0vsClusterMaxCellDiffE6[i]  = new TH2F(Form("hLambda0vsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
+                                                           Form("cluster from %s : #lambda^{2}_{0} vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()),
+                                                           ssbins,ssmin,ssmax,500,0,1.); 
+          fhMCLambda0vsClusterMaxCellDiffE6[i]->SetXTitle("#lambda_{0}^{2}");
+          fhMCLambda0vsClusterMaxCellDiffE6[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
+          outputContainer->Add(fhMCLambda0vsClusterMaxCellDiffE6[i]) ; 
           
-          fhMCESumEtaPhi[i]  = new TH2F (Form("hESumEtaPhiE_MC%s",pnamess[i].Data()),
-                                         Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].Data()),  
-                                         nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
-          fhMCESumEtaPhi[i]->SetXTitle("E (GeV)");
-          fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}");
-          outputContainer->Add(fhMCESumEtaPhi[i]);
+          fhMCNCellsvsClusterMaxCellDiffE0[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE0_MC%s",pnamess[i].Data()),
+                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E < 2 GeV",ptypess[i].Data()),
+                                                          nbins/5,nmin,nmax/5,500,0,1.); 
+          fhMCNCellsvsClusterMaxCellDiffE0[i]->SetXTitle("N cells in cluster");
+          fhMCNCellsvsClusterMaxCellDiffE0[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
+          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE0[i]) ; 
           
-          fhMCEDispEtaPhiDiff[i]  = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pnamess[i].Data()),
-                                              Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].Data()),  
-                                              nptbins,ptmin,ptmax,200,-10,10); 
-          fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)");
-          fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
-          outputContainer->Add(fhMCEDispEtaPhiDiff[i]);    
+          fhMCNCellsvsClusterMaxCellDiffE2[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE2_MC%s",pnamess[i].Data()),
+                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, 2< E < 6 GeV",ptypess[i].Data()),
+                                                          nbins/5,nmin,nmax/5,500,0,1.); 
+          fhMCNCellsvsClusterMaxCellDiffE2[i]->SetXTitle("N cells in cluster");
+          fhMCNCellsvsClusterMaxCellDiffE2[i]->SetYTitle("(E_{cluster} - E_{cell max})/ E_{cluster}");
+          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE2[i]) ; 
           
-          fhMCESphericity[i]  = new TH2F (Form("hESphericity_MC%s",pnamess[i].Data()),
-                                          Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].Data()),  
-                                          nptbins,ptmin,ptmax, 200,-1,1); 
-          fhMCESphericity[i]->SetXTitle("E (GeV)");
-          fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
-          outputContainer->Add(fhMCESphericity[i]);
+          fhMCNCellsvsClusterMaxCellDiffE6[i]  = new TH2F(Form("hNCellsvsClusterMaxCellDiffE6_MC%s",pnamess[i].Data()),
+                                                          Form("cluster from %s : N cells in cluster vs fraction of energy carried by max cell, E > 6 GeV",ptypess[i].Data()),
+                                                          nbins/5,nmin,nmax/5,500,0,1.); 
+          fhMCNCellsvsClusterMaxCellDiffE6[i]->SetXTitle("N cells in cluster");
+          fhMCNCellsvsClusterMaxCellDiffE6[i]->SetYTitle("E (GeV)");
+          outputContainer->Add(fhMCNCellsvsClusterMaxCellDiffE6[i]) ; 
           
-          for(Int_t ie = 0; ie < 7; ie++)
+          if(fCalorimeter=="EMCAL")
           {
-            fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
-                                                      Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
-                                                      ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-            fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
-            fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-            outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); 
-                        
-            fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pnamess[i].Data()),
-                                                  Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
-                                                  ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-            fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}");
-            fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-            outputContainer->Add(fhMCLambda0DispEta[ie][i]);       
-                        
-            fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
-                                                  Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
-                                                  ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-            fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}");
-            fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-            outputContainer->Add(fhMCLambda0DispPhi[ie][i]); 
+            fhMCEDispEta[i]  = new TH2F (Form("hEDispEtaE_MC%s",pnamess[i].Data()),
+                                         Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptypess[i].Data()),
+                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+            fhMCEDispEta[i]->SetXTitle("E (GeV)");
+            fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
+            outputContainer->Add(fhMCEDispEta[i]);     
+            
+            fhMCEDispPhi[i]  = new TH2F (Form("hEDispPhiE_MC%s",pnamess[i].Data()),
+                                         Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptypess[i].Data()),
+                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+            fhMCEDispPhi[i]->SetXTitle("E (GeV)");
+            fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+            outputContainer->Add(fhMCEDispPhi[i]);  
+            
+            fhMCESumEtaPhi[i]  = new TH2F (Form("hESumEtaPhiE_MC%s",pnamess[i].Data()),
+                                           Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptypess[i].Data()),  
+                                           nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
+            fhMCESumEtaPhi[i]->SetXTitle("E (GeV)");
+            fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}");
+            outputContainer->Add(fhMCESumEtaPhi[i]);
+            
+            fhMCEDispEtaPhiDiff[i]  = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pnamess[i].Data()),
+                                                Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptypess[i].Data()),  
+                                                nptbins,ptmin,ptmax,200,-10,10); 
+            fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)");
+            fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
+            outputContainer->Add(fhMCEDispEtaPhiDiff[i]);    
+            
+            fhMCESphericity[i]  = new TH2F (Form("hESphericity_MC%s",pnamess[i].Data()),
+                                            Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptypess[i].Data()),  
+                                            nptbins,ptmin,ptmax, 200,-1,1); 
+            fhMCESphericity[i]->SetXTitle("E (GeV)");
+            fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
+            outputContainer->Add(fhMCESphericity[i]);
+            
+            for(Int_t ie = 0; ie < 7; ie++)
+            {
+              fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
+                                                    Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
+                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+              fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
+              fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+              outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); 
+              
+              fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pnamess[i].Data()),
+                                                    Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
+                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+              fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}");
+              fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+              outputContainer->Add(fhMCLambda0DispEta[ie][i]);       
+              
+              fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pnamess[i].Data()),
+                                                    Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pnamess[i].Data(),bin[ie],bin[ie+1]), 
+                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+              fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}");
+              fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+              outputContainer->Add(fhMCLambda0DispPhi[ie][i]); 
+            }
           }
-          
         }
       }// loop    
       
@@ -2454,7 +2463,9 @@ void  AliAnaPhoton::MakeAnalysisFillHistograms()
         fhMCDeltaE[kmcPhoton] ->Fill(ecluster,eprim-ecluster);
         fhMCDeltaPt[kmcPhoton]->Fill(ptcluster,ptprim-ptcluster);     
         
-        if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) && fhMCE[kmcConversion])
+        if(GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCConversion) && 
+           GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCPhoton)     &&
+           fhMCE[kmcConversion])
         {
           fhMCE  [kmcConversion] ->Fill(ecluster);
           fhMCPt [kmcConversion] ->Fill(ptcluster);
@@ -2520,8 +2531,9 @@ void  AliAnaPhoton::MakeAnalysisFillHistograms()
           fhMCDeltaPt[kmcPi0Decay]->Fill(ptcluster,ptprim-ptcluster);     
           
         }
-        else if( (GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) || 
-                  GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) ) && fhMCE[kmcOtherDecay])
+        else if((( GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEtaDecay) && 
+                  !GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCEta)        ) || 
+                 GetMCAnalysisUtils()->CheckTagBit(tag,AliMCAnalysisUtils::kMCOtherDecay) ) && fhMCE[kmcOtherDecay])
         {
           fhMCE  [kmcOtherDecay] ->Fill(ecluster);
           fhMCPt [kmcOtherDecay] ->Fill(ptcluster);
index 34a463efa50bb4ec0bc6f2a32846d1baa4a44cf0..9f9de817d0d3eb7ae994422705aebac44f373b84 100755 (executable)
@@ -60,6 +60,9 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   void         SwitchOnFillShowerShapeHistograms()    { fFillSSHistograms = kTRUE  ; }
   void         SwitchOffFillShowerShapeHistograms()   { fFillSSHistograms = kFALSE ; }  
   
+  void         SwitchOnOnlySimpleSSHistoFill()        { fFillOnlySimpleSSHisto = kTRUE  ; }
+  void         SwitchOffOnlySimpleHistoFill()         { fFillOnlySimpleSSHisto = kFALSE ; }
+  
   void         FillTrackMatchingResidualHistograms(AliVCluster* calo, const Int_t cut);
   
   void         SwitchOnTMHistoFill()                  { fFillTMHisto      = kTRUE  ; }
@@ -118,6 +121,7 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   Double_t fTimeCutMax  ;                // Remove clusters/cells with time larger than this value, in ns
   Int_t    fNCellsCut ;                  // Accept for the analysis clusters with more than fNCellsCut cells
   Bool_t   fFillSSHistograms ;           // Fill shower shape histograms
+  Bool_t   fFillOnlySimpleSSHisto;       // Fill selected cluster histograms, selected SS histograms
   Int_t    fNOriginHistograms;           // Fill only NOriginHistograms of the 14 defined types
   Int_t    fNPrimaryHistograms;          // Fill only NPrimaryHistograms of the 7 defined types
 
@@ -270,7 +274,7 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   AliAnaPhoton(              const AliAnaPhoton & g) ; // cpy ctor
   AliAnaPhoton & operator = (const AliAnaPhoton & g) ; // cpy assignment
   
-  ClassDef(AliAnaPhoton,25)
+  ClassDef(AliAnaPhoton,26)
 
 } ;
  
index 34d6f401f1813eee8d50671d018981c99d33d73c..2105656bbb935d5b9199ed6788cdc70128da353a 100755 (executable)
@@ -50,7 +50,8 @@ AliAnaPi0EbE::AliAnaPi0EbE() :
     AliAnaCaloTrackCorrBaseClass(),fAnaType(kIMCalo),            fCalorimeter(""),
     fMinDist(0.),fMinDist2(0.),    fMinDist3(0.),      
     fTimeCutMin(-10000),           fTimeCutMax(10000),         
-    fFillWeightHistograms(kFALSE), fFillTMHisto(0),              fFillSelectClHisto(0),
+    fFillWeightHistograms(kFALSE), fFillTMHisto(0),              
+    fFillSelectClHisto(0),         fFillOnlySimpleSSHisto(1),
     fInputAODGammaConvName(""),
     // Histograms
     fhPt(0),                       fhE(0),                    
@@ -196,11 +197,11 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster,
   Float_t ll0  = 0., ll1  = 0.;
   Float_t dispp= 0., dEta = 0., dPhi    = 0.; 
   Float_t sEta = 0., sPhi = 0., sEtaPhi = 0.;  
-  if(fCalorimeter == "EMCAL")
+  if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
   {
     GetCaloUtils()->GetEMCALRecoUtils()->RecalculateClusterShowerShapeParameters(GetEMCALGeometry(), GetReader()->GetInputEvent()->GetEMCALCells(), cluster,
                                                                                  ll0, ll1, dispp, dEta, dPhi, sEta, sPhi, sEtaPhi);
-
+    
     fhDispEtaE        -> Fill(e,dEta);
     fhDispPhiE        -> Fill(e,dPhi);
     fhSumEtaE         -> Fill(e,sEta);
@@ -228,7 +229,8 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster,
   fhELambda0LocMax   [indexMax]->Fill(e,l0); 
   fhELambda1LocMax   [indexMax]->Fill(e,l1);
   fhEDispersionLocMax[indexMax]->Fill(e,disp);
-  if(fCalorimeter=="EMCAL") 
+  
+  if(fCalorimeter=="EMCAL" && !fFillOnlySimpleSSHisto) 
   {
     fhEDispEtaLocMax       [indexMax]-> Fill(e,dEta);
     fhEDispPhiLocMax       [indexMax]-> Fill(e,dPhi);
@@ -327,10 +329,11 @@ void AliAnaPi0EbE::FillSelectedClusterHistograms(AliVCluster* cluster,
     
     if(fCalorimeter=="EMCAL" && nSM < 6) 
       fhEMCLambda0NoTRD[mcIndex]->Fill(e, l0  );
+    
     if(maxCellFraction < 0.5) 
       fhEMCLambda0FracMaxCellCut[mcIndex]->Fill(e, l0  );  
     
-    if(fCalorimeter == "EMCAL")
+    if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
     {
       fhMCEDispEta        [mcIndex]-> Fill(e,dEta);
       fhMCEDispPhi        [mcIndex]-> Fill(e,dPhi);
@@ -596,66 +599,68 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
       fhEFracMaxCellNoTRD->SetXTitle("E (GeV)");
       outputContainer->Add(fhEFracMaxCellNoTRD) ; 
       
-      
-      fhDispEtaE  = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhDispEtaE->SetXTitle("E (GeV)");
-      fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}");
-      outputContainer->Add(fhDispEtaE);     
-      
-      fhDispPhiE  = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhDispPhiE->SetXTitle("E (GeV)");
-      fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}");
-      outputContainer->Add(fhDispPhiE);  
-      
-      fhSumEtaE  = new TH2F ("hSumEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhSumEtaE->SetXTitle("E (GeV)");
-      fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}");
-      outputContainer->Add(fhSumEtaE);     
-      
-      fhSumPhiE  = new TH2F ("hSumPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",  
-                             nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-      fhSumPhiE->SetXTitle("E (GeV)");
-      fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}");
-      outputContainer->Add(fhSumPhiE);  
-      
-      fhSumEtaPhiE  = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",  
-                                nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
-      fhSumEtaPhiE->SetXTitle("E (GeV)");
-      fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}");
-      outputContainer->Add(fhSumEtaPhiE);
-      
-      fhDispEtaPhiDiffE  = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E", 
-                                     nptbins,ptmin,ptmax,200, -10,10); 
-      fhDispEtaPhiDiffE->SetXTitle("E (GeV)");
-      fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
-      outputContainer->Add(fhDispEtaPhiDiffE);    
-      
-      fhSphericityE  = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",  
-                                 nptbins,ptmin,ptmax, 200, -1,1); 
-      fhSphericityE->SetXTitle("E (GeV)");
-      fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
-      outputContainer->Add(fhSphericityE);
-      
-      for(Int_t i = 0; i < 7; i++)
+      if(!fFillOnlySimpleSSHisto)
       {
-        fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
-                                            ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}");
-        fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-        outputContainer->Add(fhDispEtaDispPhi[i]); 
+        fhDispEtaE  = new TH2F ("hDispEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhDispEtaE->SetXTitle("E (GeV)");
+        fhDispEtaE->SetYTitle("#sigma^{2}_{#eta #eta}");
+        outputContainer->Add(fhDispEtaE);     
+        
+        fhDispPhiE  = new TH2F ("hDispPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhDispPhiE->SetXTitle("E (GeV)");
+        fhDispPhiE->SetYTitle("#sigma^{2}_{#phi #phi}");
+        outputContainer->Add(fhDispPhiE);  
+        
+        fhSumEtaE  = new TH2F ("hSumEtaE","#sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i})^{2} / #Sigma w_{i} - <#eta>^{2} vs E",  nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhSumEtaE->SetXTitle("E (GeV)");
+        fhSumEtaE->SetYTitle("#delta^{2}_{#eta #eta}");
+        outputContainer->Add(fhSumEtaE);     
+        
+        fhSumPhiE  = new TH2F ("hSumPhiE","#sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i})^{2}/ #Sigma w_{i} - <#phi>^{2} vs E",  
+                               nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+        fhSumPhiE->SetXTitle("E (GeV)");
+        fhSumPhiE->SetYTitle("#delta^{2}_{#phi #phi}");
+        outputContainer->Add(fhSumPhiE);  
+        
+        fhSumEtaPhiE  = new TH2F ("hSumEtaPhiE","#delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",  
+                                  nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
+        fhSumEtaPhiE->SetXTitle("E (GeV)");
+        fhSumEtaPhiE->SetYTitle("#delta^{2}_{#eta #phi}");
+        outputContainer->Add(fhSumEtaPhiE);
         
-        fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1])
-                                         ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}");
-        fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
-        outputContainer->Add(fhLambda0DispEta[i]);       
+        fhDispEtaPhiDiffE  = new TH2F ("hDispEtaPhiDiffE","#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E"
+                                       nptbins,ptmin,ptmax,200, -10,10); 
+        fhDispEtaPhiDiffE->SetXTitle("E (GeV)");
+        fhDispEtaPhiDiffE->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
+        outputContainer->Add(fhDispEtaPhiDiffE);    
         
-        fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), 
-                                            ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-        fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}");
-        fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-        outputContainer->Add(fhLambda0DispPhi[i]); 
+        fhSphericityE  = new TH2F ("hSphericityE","(#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",  
+                                   nptbins,ptmin,ptmax, 200, -1,1); 
+        fhSphericityE->SetXTitle("E (GeV)");
+        fhSphericityE->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
+        outputContainer->Add(fhSphericityE);
         
+        for(Int_t i = 0; i < 7; i++)
+        {
+          fhDispEtaDispPhi[i] = new TH2F (Form("hDispEtaDispPhi_EBin%d",i),Form("#sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhDispEtaDispPhi[i]->SetXTitle("#sigma^{2}_{#eta #eta}");
+          fhDispEtaDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+          outputContainer->Add(fhDispEtaDispPhi[i]); 
+          
+          fhLambda0DispEta[i] = new TH2F (Form("hLambda0DispEta_EBin%d",i),Form("#lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhLambda0DispEta[i]->SetXTitle("#lambda^{2}_{0}");
+          fhLambda0DispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
+          outputContainer->Add(fhLambda0DispEta[i]);       
+          
+          fhLambda0DispPhi[i] = new TH2F (Form("hLambda0DispPhi_EBin%d",i),Form("#lambda^{2}_{0}} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",bin[i],bin[i+1]), 
+                                          ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+          fhLambda0DispPhi[i]->SetXTitle("#lambda^{2}_{0}");
+          fhLambda0DispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+          outputContainer->Add(fhLambda0DispPhi[i]); 
+          
+        }
       }
     }    
     
@@ -688,7 +693,7 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
       fhEDispersionLocMax[i]->SetXTitle("E (GeV)");
       outputContainer->Add(fhEDispersionLocMax[i]) ; 
       
-      if(fCalorimeter == "EMCAL")
+      if(fCalorimeter == "EMCAL" && !fFillOnlySimpleSSHisto)
       {
         fhEDispEtaLocMax[i]  = new TH2F(Form("hEDispEtaLocMax%d",i+1),
                                         Form("Selected #pi^{0} (#eta) pairs: E vs #sigma_{#eta #eta}, %s",nlm[i].Data()),
@@ -738,7 +743,7 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
     fhETime->SetYTitle("t (ns)");
     outputContainer->Add(fhETime);    
     
-  }// Invariant mass analysis in calorimeters and calorimeter + conversion photons
+  }
   
   if(fAnaType == kIMCalo)
   {
@@ -813,7 +818,7 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
       outputContainer->Add(fhEOverPNoTRD);   
     }   
     
-    if(IsDataMC())
+    if(IsDataMC() && fFillTMHisto)
     {
       fhTrackMatchedMCParticle  = new TH2F
       ("hTrackMatchedMCParticle",
@@ -837,7 +842,6 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   
   if(fFillWeightHistograms)
   {
-    
     fhECellClusterRatio  = new TH2F ("hECellClusterRatio"," cell energy / cluster energy vs cluster energy, for selected decay photons from neutral meson",
                                      nptbins,ptmin,ptmax, 100,0,1.); 
     fhECellClusterRatio->SetXTitle("E_{cluster} (GeV) ");
@@ -1009,66 +1013,68 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
             fhEMCLambda0NoTRD[i]->SetXTitle("E (GeV)");
             outputContainer->Add(fhEMCLambda0NoTRD[i]) ; 
             
-            
-            fhMCEDispEta[i]  = new TH2F (Form("hEDispEtaE_MC%s",pname[i].Data()),
-                                         Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptype[i].Data()),
-                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-            fhMCEDispEta[i]->SetXTitle("E (GeV)");
-            fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
-            outputContainer->Add(fhMCEDispEta[i]);     
-            
-            fhMCEDispPhi[i]  = new TH2F (Form("hEDispPhiE_MC%s",pname[i].Data()),
-                                         Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptype[i].Data()),
-                                         nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
-            fhMCEDispPhi[i]->SetXTitle("E (GeV)");
-            fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-            outputContainer->Add(fhMCEDispPhi[i]);  
-            
-            fhMCESumEtaPhi[i]  = new TH2F (Form("hESumEtaPhiE_MC%s",pname[i].Data()),
-                                           Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptype[i].Data()),  
-                                           nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
-            fhMCESumEtaPhi[i]->SetXTitle("E (GeV)");
-            fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}");
-            outputContainer->Add(fhMCESumEtaPhi[i]);
-            
-            fhMCEDispEtaPhiDiff[i]  = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pname[i].Data()),
-                                                Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptype[i].Data()),  
-                                                nptbins,ptmin,ptmax,200,-10,10); 
-            fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)");
-            fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
-            outputContainer->Add(fhMCEDispEtaPhiDiff[i]);    
-            
-            fhMCESphericity[i]  = new TH2F (Form("hESphericity_MC%s",pname[i].Data()),
-                                            Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptype[i].Data()),  
-                                            nptbins,ptmin,ptmax, 200,-1,1); 
-            fhMCESphericity[i]->SetXTitle("E (GeV)");
-            fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
-            outputContainer->Add(fhMCESphericity[i]);
-            
-            for(Int_t ie = 0; ie < 7; ie++)
+            if(!fFillOnlySimpleSSHisto)
             {
-              fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pname[i].Data()),
-                                                    Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
-                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-              fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
-              fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-              outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); 
+              fhMCEDispEta[i]  = new TH2F (Form("hEDispEtaE_MC%s",pname[i].Data()),
+                                           Form("cluster from %s : #sigma^{2}_{#eta #eta} = #Sigma w_{i}(#eta_{i} - <#eta>)^{2}/ #Sigma w_{i} vs E",ptype[i].Data()),
+                                           nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+              fhMCEDispEta[i]->SetXTitle("E (GeV)");
+              fhMCEDispEta[i]->SetYTitle("#sigma^{2}_{#eta #eta}");
+              outputContainer->Add(fhMCEDispEta[i]);     
+              
+              fhMCEDispPhi[i]  = new TH2F (Form("hEDispPhiE_MC%s",pname[i].Data()),
+                                           Form("cluster from %s : #sigma^{2}_{#phi #phi} = #Sigma w_{i}(#phi_{i} - <#phi>)^{2} / #Sigma w_{i} vs E",ptype[i].Data()),
+                                           nptbins,ptmin,ptmax, ssbins,ssmin,ssmax); 
+              fhMCEDispPhi[i]->SetXTitle("E (GeV)");
+              fhMCEDispPhi[i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+              outputContainer->Add(fhMCEDispPhi[i]);  
+              
+              fhMCESumEtaPhi[i]  = new TH2F (Form("hESumEtaPhiE_MC%s",pname[i].Data()),
+                                             Form("cluster from %s : #delta^{2}_{#eta #phi} = #Sigma w_{i}(#phi_{i} #eta_{i} ) / #Sigma w_{i} - <#phi><#eta> vs E",ptype[i].Data()),  
+                                             nptbins,ptmin,ptmax, 2*ssbins,-ssmax,ssmax); 
+              fhMCESumEtaPhi[i]->SetXTitle("E (GeV)");
+              fhMCESumEtaPhi[i]->SetYTitle("#delta^{2}_{#eta #phi}");
+              outputContainer->Add(fhMCESumEtaPhi[i]);
               
-              fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pname[i].Data()),
-                                                    Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
-                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-              fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}");
-              fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-              outputContainer->Add(fhMCLambda0DispEta[ie][i]);       
+              fhMCEDispEtaPhiDiff[i]  = new TH2F (Form("hEDispEtaPhiDiffE_MC%s",pname[i].Data()),
+                                                  Form("cluster from %s : #sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta} vs E",ptype[i].Data()),  
+                                                  nptbins,ptmin,ptmax,200,-10,10); 
+              fhMCEDispEtaPhiDiff[i]->SetXTitle("E (GeV)");
+              fhMCEDispEtaPhiDiff[i]->SetYTitle("#sigma^{2}_{#phi #phi}-#sigma^{2}_{#eta #eta}");
+              outputContainer->Add(fhMCEDispEtaPhiDiff[i]);    
               
-              fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pname[i].Data()),
-                                                    Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
-                                                    ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
-              fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}");
-              fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
-              outputContainer->Add(fhMCLambda0DispPhi[ie][i]); 
+              fhMCESphericity[i]  = new TH2F (Form("hESphericity_MC%s",pname[i].Data()),
+                                              Form("cluster from %s : (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi}) vs E",ptype[i].Data()),  
+                                              nptbins,ptmin,ptmax, 200,-1,1); 
+              fhMCESphericity[i]->SetXTitle("E (GeV)");
+              fhMCESphericity[i]->SetYTitle("s = (#sigma^{2}_{#phi #phi} - #sigma^{2}_{#eta #eta}) / (#sigma^{2}_{#eta #eta} + #sigma^{2}_{#phi #phi})");
+              outputContainer->Add(fhMCESphericity[i]);
               
-            }            
+              for(Int_t ie = 0; ie < 7; ie++)
+              {
+                fhMCDispEtaDispPhi[ie][i] = new TH2F (Form("hMCDispEtaDispPhi_EBin%d_MC%s",ie,pname[i].Data()),
+                                                      Form("cluster from %s : #sigma^{2}_{#phi #phi} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
+                                                      ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+                fhMCDispEtaDispPhi[ie][i]->SetXTitle("#sigma^{2}_{#eta #eta}");
+                fhMCDispEtaDispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+                outputContainer->Add(fhMCDispEtaDispPhi[ie][i]); 
+                
+                fhMCLambda0DispEta[ie][i] = new TH2F (Form("hMCLambda0DispEta_EBin%d_MC%s",ie,pname[i].Data()),
+                                                      Form("cluster from %s : #lambda^{2}_{0} vs #sigma^{2}_{#eta #eta} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
+                                                      ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+                fhMCLambda0DispEta[ie][i]->SetXTitle("#lambda^{2}_{0}");
+                fhMCLambda0DispEta[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+                outputContainer->Add(fhMCLambda0DispEta[ie][i]);       
+                
+                fhMCLambda0DispPhi[ie][i] = new TH2F (Form("hMCLambda0DispPhi_EBin%d_MC%s",ie,pname[i].Data()),
+                                                      Form("cluster from %s :#lambda^{2}_{0} vs #sigma^{2}_{#phi #phi} for %d < E < %d GeV",pname[i].Data(),bin[ie],bin[ie+1]), 
+                                                      ssbins,ssmin,ssmax , ssbins,ssmin,ssmax); 
+                fhMCLambda0DispPhi[ie][i]->SetXTitle("#lambda^{2}_{0}");
+                fhMCLambda0DispPhi[ie][i]->SetYTitle("#sigma^{2}_{#phi #phi}");
+                outputContainer->Add(fhMCLambda0DispPhi[ie][i]); 
+                
+              }            
+            }
           }
           
           fhEMCLambda0FracMaxCellCut[i]  = new TH2F(Form("hELambda0FracMaxCellCut_MC%s",pname[i].Data()),
@@ -1092,7 +1098,7 @@ TList *  AliAnaPi0EbE::GetCreateOutputObjects()
   }//Histos with MC
   
   
-  if(fAnaType==kSSCalo && fFillSelectClHisto )
+  if(fAnaType==kSSCalo && fFillSelectClHisto && !fFillOnlySimpleSSHisto )
   {
     
     fhAsymmetryE  = new TH2F ("hAsymmetryE","A = ( E1 - E2 ) / ( E1 + E2 ) vs E",  
index a7bf28f690b29e160908979aa80b16e49f013fcc..da10fc8c2717aa3312253c584f386dfa43d04822 100755 (executable)
@@ -67,31 +67,35 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   
   //Analysis types
   enum anaTypes  {kIMCalo, kSSCalo, kIMCaloTracks};  
-  anaTypes       GetAnalysisType()                     const { return fAnaType                ; }
-  void           SetAnalysisType(anaTypes ana)               { fAnaType = ana                 ; }
+  anaTypes       GetAnalysisType()                     const { return fAnaType                 ; }
+  void           SetAnalysisType(anaTypes ana)               { fAnaType = ana                  ; }
   
-  TString        GetInputAODGammaConvName()            const { return fInputAODGammaConvName  ; }
-  void           SetInputAODGammaConvName(TString name)      { fInputAODGammaConvName = name  ; }      
+  TString        GetInputAODGammaConvName()            const { return fInputAODGammaConvName   ; }
+  void           SetInputAODGammaConvName(TString name)      { fInputAODGammaConvName = name   ; }     
   
   //Only for pi0 SS identification case
-  void           SetCalorimeter(TString & det)               { fCalorimeter = det             ; }
+  void           SetCalorimeter(TString & det)               { fCalorimeter = det              ; }
   
   void           SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
                   fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                               ; }
   
   void           SetTimeCut(Double_t min, Double_t max)      { fTimeCutMin = min; 
-                                                               fTimeCutMax = max              ; }
-  Double_t       GetTimeCutMin()                       const { return fTimeCutMin             ; }
-  Double_t       GetTimeCutMax()                       const { return fTimeCutMax             ; }      
+                                                               fTimeCutMax = max               ; }
+  Double_t       GetTimeCutMin()                       const { return fTimeCutMin              ; }
+  Double_t       GetTimeCutMax()                       const { return fTimeCutMax              ; }     
+  
+  void           SwitchOnFillWeightHistograms()              { fFillWeightHistograms  = kTRUE  ; }
+  void           SwitchOffFillWeightHistograms()             { fFillWeightHistograms  = kFALSE ; }  
+  
+  void           SwitchOnTMHistoFill()                       { fFillTMHisto           = kTRUE  ; }
+  void           SwitchOffTMHistoFill()                      { fFillTMHisto           = kFALSE ; }
 
-  void           SwitchOnFillWeightHistograms()              { fFillWeightHistograms = kTRUE  ; }
-  void           SwitchOffFillWeightHistograms()             { fFillWeightHistograms = kFALSE ; }  
+  void           SwitchOnSelectedClusterHistoFill()          { fFillSelectClHisto     = kTRUE  ; }
+  void           SwitchOffSelectedClusterHistoFill()         { fFillSelectClHisto     = kFALSE ; }
   
-  void           SwitchOnTMHistoFill()                       { fFillTMHisto          = kTRUE  ; }
-  void           SwitchOffTMHistoFill()                      { fFillTMHisto          = kFALSE ; }
+  void           SwitchOnOnlySimpleSSHistoFill()             { fFillOnlySimpleSSHisto = kTRUE  ; }
+  void           SwitchOffOnlySimpleHistoFill()              { fFillOnlySimpleSSHisto = kFALSE ; }
 
-  void           SwitchOnSelectedClusterHistoFill()          { fFillSelectClHisto    = kTRUE  ; }
-  void           SwitchOffSelectedClusterHistoFill()         { fFillSelectClHisto    = kFALSE ; }
   
   //For histograms
   enum mcTypes   { kmcPhoton = 0, kmcConversion = 1, kmcPi0    = 2,  
@@ -112,6 +116,7 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   Bool_t         fFillWeightHistograms ;   // Fill weigth histograms
   Bool_t         fFillTMHisto;             // Fill track matching plots
   Bool_t         fFillSelectClHisto;       // Fill selected cluster histograms
+  Bool_t         fFillOnlySimpleSSHisto;   // Fill selected cluster histograms, selected SS histograms
 
   //Only for combination of calorimeter and conversion photons, kIMCaloTracks
   TString        fInputAODGammaConvName;   //  Name of AOD branch with conversion photons
@@ -225,7 +230,7 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   AliAnaPi0EbE(              const AliAnaPi0EbE & pi0ebe) ; // cpy ctor
   AliAnaPi0EbE & operator = (const AliAnaPi0EbE & pi0ebe) ; // cpy assignment
   
-  ClassDef(AliAnaPi0EbE,18)
+  ClassDef(AliAnaPi0EbE,19)
 } ;