]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add histograms related to asymmetry, add option of asymetry cut for splitting
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Oct 2012 09:17:39 +0000 (09:17 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Oct 2012 09:17:39 +0000 (09:17 +0000)
PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.cxx
PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.cxx
PWGGA/CaloTrackCorrelations/AliAnaPi0EbE.h

index 0a71870778fa87733bba73ee391f6e07e462f8bc..6dbbb2b118af530f070c390953f9262e7f4a3ae1 100755 (executable)
@@ -60,7 +60,8 @@ AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
   fFillSSExtraHisto(kFALSE),
   fFillMCFractionHisto(kFALSE),
   fhMassM02CutNLocMax1(0),    fhMassM02CutNLocMax2(0),    fhMassM02CutNLocMaxN(0),
-  fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0)
+  fhMassSplitECutNLocMax1(0), fhMassSplitECutNLocMax2(0), fhMassSplitECutNLocMaxN(0),
+  fhMassAsyCutNLocMax1(0),    fhMassAsyCutNLocMax2(0),    fhMassAsyCutNLocMaxN(0)
 {
   //default ctor
   
@@ -100,6 +101,16 @@ AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
       fhMassEtaLocMaxN[i][j] = 0;
       fhMassConLocMaxN[i][j] = 0;
       
+      fhAsyPi0LocMax1[i][j] = 0;
+      fhAsyEtaLocMax1[i][j] = 0;
+      fhAsyConLocMax1[i][j] = 0;
+      fhAsyPi0LocMax2[i][j] = 0;
+      fhAsyEtaLocMax2[i][j] = 0;
+      fhAsyConLocMax2[i][j] = 0;
+      fhAsyPi0LocMaxN[i][j] = 0;
+      fhAsyEtaLocMaxN[i][j] = 0;
+      fhAsyConLocMaxN[i][j] = 0;      
+      
       fhMassM02NLocMax1[i][j]= 0;
       fhMassM02NLocMax2[i][j]= 0;
       fhMassM02NLocMaxN[i][j]= 0;   
@@ -131,7 +142,11 @@ AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
       
       fhMCGenEvsSplitENLocMax1[i][j]= 0;
       fhMCGenEvsSplitENLocMax2[i][j]= 0;
-      fhMCGenEvsSplitENLocMaxN[i][j]= 0;      
+      fhMCGenEvsSplitENLocMaxN[i][j]= 0;     
+      
+      fhAsymNLocMax1 [i][j] = 0;
+      fhAsymNLocMax2 [i][j] = 0;
+      fhAsymNLocMaxN [i][j] = 0;
     }
     
     for(Int_t jj = 0; jj < 4; jj++)
@@ -169,9 +184,9 @@ AliAnaInsideClusterInvariantMass::AliAnaInsideClusterInvariantMass() :
     fhAnglePairMassLocMax1[i] = 0;
     fhAnglePairMassLocMax2[i] = 0;
     fhAnglePairMassLocMaxN[i] = 0;
-    fhAsymNLocMax1        [i] = 0;
-    fhAsymNLocMax2        [i] = 0;
-    fhAsymNLocMaxN        [i] = 0;
+    fhSplitEFractionvsAsyNLocMax1[i] = 0;
+    fhSplitEFractionvsAsyNLocMax2[i] = 0; 
+    fhSplitEFractionvsAsyNLocMaxN[i] = 0;    
   }
   
   for(Int_t i = 0; i < 4; i++)
@@ -261,42 +276,61 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
   TString sMatched[] = {"","Matched"};
   
   
-  fhMassSplitECutNLocMax1  = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E",
+  fhMassSplitECutNLocMax1  = new TH2F("hMassSplitECutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, (E1+E2)/E cut",
                                    nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassSplitECutNLocMax1->SetYTitle("M (GeV/c^{2})");
   fhMassSplitECutNLocMax1->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassSplitECutNLocMax1) ;   
   
-  fhMassSplitECutNLocMax2  = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E",
+  fhMassSplitECutNLocMax2  = new TH2F("hMassSplitECutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, (E1+E2)/E cut",
                                    nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassSplitECutNLocMax2->SetYTitle("M (GeV/c^{2})");
   fhMassSplitECutNLocMax2->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassSplitECutNLocMax2) ;   
   
-  fhMassSplitECutNLocMaxN  = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E",
+  fhMassSplitECutNLocMaxN  = new TH2F("hMassSplitECutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, (E1+E2)/E cut",
                              nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassSplitECutNLocMaxN->SetYTitle("M (GeV/c^{2})");
   fhMassSplitECutNLocMaxN->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassSplitECutNLocMaxN) ;   
 
-  fhMassM02CutNLocMax1  = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E",
+  fhMassM02CutNLocMax1  = new TH2F("hMassM02CutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, M02 cut",
                              nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassM02CutNLocMax1->SetYTitle("M (GeV/c^{2})");
   fhMassM02CutNLocMax1->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassM02CutNLocMax1) ;   
   
-  fhMassM02CutNLocMax2  = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E",
+  fhMassM02CutNLocMax2  = new TH2F("hMassM02CutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, M02 cut",
                              nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassM02CutNLocMax2->SetYTitle("M (GeV/c^{2})");
   fhMassM02CutNLocMax2->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassM02CutNLocMax2) ;   
   
-  fhMassM02CutNLocMaxN  = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E",
+  fhMassM02CutNLocMaxN  = new TH2F("hMassM02CutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, M02 cut",
                              nptbins,ptmin,ptmax,mbins,mmin,mmax); 
   fhMassM02CutNLocMaxN->SetYTitle("M (GeV/c^{2})");
   fhMassM02CutNLocMaxN->SetXTitle("E (GeV)");
   outputContainer->Add(fhMassM02CutNLocMaxN) ;   
   
+  fhMassAsyCutNLocMax1  = new TH2F("hMassAsyCutNLocMax1","Invariant mass of splitted cluster with NLM=1 vs E, with |A|>0.8",
+                                   nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+  fhMassAsyCutNLocMax1->SetYTitle("M (GeV/c^{2})");
+  fhMassAsyCutNLocMax1->SetXTitle("E (GeV)");
+  outputContainer->Add(fhMassAsyCutNLocMax1) ;   
+  
+  fhMassAsyCutNLocMax2  = new TH2F("hMassAsyCutNLocMax2","Invariant mass of splitted cluster with NLM=2 vs E, with |A|>0.8",
+                                   nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+  fhMassAsyCutNLocMax2->SetYTitle("M (GeV/c^{2})");
+  fhMassAsyCutNLocMax2->SetXTitle("E (GeV)");
+  outputContainer->Add(fhMassAsyCutNLocMax2) ;   
+  
+  fhMassAsyCutNLocMaxN  = new TH2F("hMassAsyCutNLocMaxN","Invariant mass of splitted cluster with NLM>2 vs E, with |A|>0.8",
+                                   nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+  fhMassAsyCutNLocMaxN->SetYTitle("M (GeV/c^{2})");
+  fhMassAsyCutNLocMaxN->SetXTitle("E (GeV)");
+  outputContainer->Add(fhMassAsyCutNLocMaxN) ;   
+  
+  
   for(Int_t i = 0; i < n; i++)
   {  
     for(Int_t j = 0; j < 2; j++)
@@ -324,14 +358,14 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
       outputContainer->Add(fhMassNLocMaxN[i][j]) ;   
       
       fhMassM02NLocMax1[i][j]  = new TH2F(Form("hMassM02NLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
-                                          Form("Invariant mass of splitted cluster with NLM=1, #lambda_{0}^{2}, E > 7 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
+                                          Form("Invariant mass of splitted cluster with NLM=1, #lambda_{0}^{2}, E > 8 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
                                           ssbins,ssmin,ssmax,mbins,mmin,mmax); 
       fhMassM02NLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
       fhMassM02NLocMax1[i][j]->SetXTitle("#lambda_{0}^{2}");
       outputContainer->Add(fhMassM02NLocMax1[i][j]) ;   
       
       fhMassM02NLocMax2[i][j]  = new TH2F(Form("hMassM02NLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
-                                          Form("Invariant mass of splitted cluster with NLM=2, #lambda_{0}^{2}, E > 7 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                          Form("Invariant mass of splitted cluster with NLM=2, #lambda_{0}^{2}, E > 8 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
                                           ssbins,ssmin,ssmax,mbins,mmin,mmax); 
       fhMassM02NLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
       fhMassM02NLocMax2[i][j]->SetXTitle("#lambda_{0}^{2}");
@@ -344,17 +378,40 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
       fhMassM02NLocMaxN[i][j]->SetXTitle("#lambda_{0}^{2}");
       outputContainer->Add(fhMassM02NLocMaxN[i][j]) ;   
       
+      
+      fhAsymNLocMax1[i][j]  = new TH2F(Form("hAsymNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
+                                    Form("Asymmetry of NLM=1  vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                    nptbins,ptmin,ptmax,200,-1,1); 
+      fhAsymNLocMax1[i][j]->SetYTitle("#alpha (rad)");
+      fhAsymNLocMax1[i][j]->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsymNLocMax1[i][j]) ;   
+      
+      fhAsymNLocMax2[i][j]  = new TH2F(Form("hAsymNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
+                                    Form("Asymmetry of NLM=2  vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                    nptbins,ptmin,ptmax,200,-1,1); 
+      fhAsymNLocMax2[i][j]->SetYTitle("#alpha (rad)");
+      fhAsymNLocMax2[i][j]->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsymNLocMax2[i][j]) ;   
+      
+      fhAsymNLocMaxN[i][j]  = new TH2F(Form("hAsymNLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
+                                    Form("Asymmetry of NLM>2  vs cluster Energy, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                    nptbins,ptmin,ptmax,200,-1,1); 
+      fhAsymNLocMaxN[i][j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
+      fhAsymNLocMaxN[i][j]->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsymNLocMaxN[i][j]) ;   
+      
+      
       if(fFillSSExtraHisto)
       {
         fhMassDispEtaNLocMax1[i][j]  = new TH2F(Form("hMassDispEtaNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of splitted cluster with NLM=1, #sigma_{#eta #eta}^{2}, E > 7 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of splitted cluster with NLM=1, #sigma_{#eta #eta}^{2}, E > 8 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 ssbins,ssmin,ssmax,mbins,mmin,mmax); 
         fhMassDispEtaNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispEtaNLocMax1[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
         outputContainer->Add(fhMassDispEtaNLocMax1[i][j]) ;   
         
         fhMassDispEtaNLocMax2[i][j]  = new TH2F(Form("hMassDispEtaNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of splitted cluster with NLM=2 #sigma_{#eta #eta}^{2}, E > 7 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of splitted cluster with NLM=2 #sigma_{#eta #eta}^{2}, E > 8 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 ssbins,ssmin,ssmax,mbins,mmin,mmax); 
         fhMassDispEtaNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispEtaNLocMax2[i][j]->SetXTitle("#sigma_{#eta #eta}^{2}");
@@ -368,14 +425,14 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
         outputContainer->Add(fhMassDispEtaNLocMaxN[i][j]) ;   
         
         fhMassDispPhiNLocMax1[i][j]  = new TH2F(Form("hMassDispPhiNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 7 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of 2 highest energy cells #sigma_{#phi #phi}^{2}, E > 8 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 ssbins,ssmin,ssmax,mbins,mmin,mmax); 
         fhMassDispPhiNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispPhiNLocMax1[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
         outputContainer->Add(fhMassDispPhiNLocMax1[i][j]) ;   
         
         fhMassDispPhiNLocMax2[i][j]  = new TH2F(Form("hMassDispPhiNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 7 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of 2 local maxima cells #sigma_{#phi #phi}^{2}, E > 8 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 ssbins,ssmin,ssmax,mbins,mmin,mmax); 
         fhMassDispPhiNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispPhiNLocMax2[i][j]->SetXTitle("#sigma_{#phi #phi}^{2}");
@@ -389,14 +446,14 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
         outputContainer->Add(fhMassDispPhiNLocMaxN[i][j]) ;   
         
         fhMassDispAsyNLocMax1[i][j]  = new TH2F(Form("hMassDispAsyNLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 7 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of 2 highest energy cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 8 GeV,%s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 200,-1,1,mbins,mmin,mmax); 
         fhMassDispAsyNLocMax1[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispAsyNLocMax1[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
         outputContainer->Add(fhMassDispAsyNLocMax1[i][j]) ;   
         
         fhMassDispAsyNLocMax2[i][j]  = new TH2F(Form("hMassDispAsyNLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
-                                                Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 7 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
+                                                Form("Invariant mass of 2 local maxima cells A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2}), E > 8 GeV, %s %s",ptype[i].Data(),sMatched[j].Data()),
                                                 200,-1,1,mbins,mmin,mmax); 
         fhMassDispAsyNLocMax2[i][j]->SetYTitle("M (GeV/c^{2})");
         fhMassDispAsyNLocMax2[i][j]->SetXTitle("A = (#sigma_{#phi #phi}^{2} - #sigma_{#eta #eta}^{2}) / (#sigma_{#phi #phi}^{2} + #sigma_{#eta #eta}^{2})");
@@ -732,6 +789,79 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
       fhMassConLocMaxN[i][j]   ->SetXTitle("E (GeV)");
       outputContainer->Add(fhMassConLocMaxN[i][j]) ; 
       
+      
+      fhAsyPi0LocMax1[i][j]     = new TH2F(Form("hAsyPi0LocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2} %s, for N Local max = 1",
+                                                 GetCaloPID()->GetPi0MinMass(),GetCaloPID()->GetPi0MaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyPi0LocMax1[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyPi0LocMax1[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyPi0LocMax1[i][j]) ; 
+      
+      fhAsyEtaLocMax1[i][j]     = new TH2F(Form("hAsyEtaLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2}, %s, for N Local max = 1",
+                                                 GetCaloPID()->GetEtaMinMass(),GetCaloPID()->GetEtaMaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyEtaLocMax1[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyEtaLocMax1[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyEtaLocMax1[i][j]) ; 
+      
+      fhAsyConLocMax1[i][j]    = new TH2F(Form("hAsyConLocMax1%s%s",pname[i].Data(),sMatched[j].Data()),
+                                           Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2}, %s, for N Local max = 1",
+                                                GetCaloPID()->GetPhotonMinMass(),GetCaloPID()->GetPhotonMaxMass(),ptype[i].Data()),
+                                           nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyConLocMax1[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyConLocMax1[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyConLocMax1[i][j]) ; 
+      
+      fhAsyPi0LocMax2[i][j]     = new TH2F(Form("hAsyPi0LocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2} %s, for N Local max = 2",
+                                                 GetCaloPID()->GetPi0MinMass(),GetCaloPID()->GetPi0MaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyPi0LocMax2[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyPi0LocMax2[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyPi0LocMax2[i][j]) ; 
+      
+      fhAsyEtaLocMax2[i][j]     = new TH2F(Form("hAsyEtaLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2}, %s, for N Local max = 2",
+                                                 GetCaloPID()->GetEtaMinMass(),GetCaloPID()->GetEtaMaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyEtaLocMax2[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyEtaLocMax2[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyEtaLocMax2[i][j]) ; 
+      
+      fhAsyConLocMax2[i][j]    = new TH2F(Form("hAsyConLocMax2%s%s",pname[i].Data(),sMatched[j].Data()),
+                                           Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2}, %s, for N Local max = 2",
+                                                GetCaloPID()->GetPhotonMinMass(),GetCaloPID()->GetPhotonMaxMass(),ptype[i].Data()),
+                                           nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyConLocMax2[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyConLocMax2[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyConLocMax2[i][j]) ; 
+      
+      fhAsyPi0LocMaxN[i][j]     = new TH2F(Form("hAsyPi0LocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2} %s, for N Local max > 2",
+                                                 GetCaloPID()->GetPi0MinMass(),GetCaloPID()->GetPi0MaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyPi0LocMaxN[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyPi0LocMaxN[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyPi0LocMaxN[i][j]) ; 
+      
+      fhAsyEtaLocMaxN[i][j]     = new TH2F(Form("hAsyEtaLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
+                                            Form("Asymmetry vs E for mass range [%2.2f-%2.2f] MeV/c^{2}, %s, for N Local max > 2", 
+                                                 GetCaloPID()->GetEtaMinMass(),GetCaloPID()->GetEtaMaxMass(),ptype[i].Data()),
+                                            nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyEtaLocMaxN[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyEtaLocMaxN[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyEtaLocMaxN[i][j]) ; 
+      
+      fhAsyConLocMaxN[i][j]    = new TH2F(Form("hAsyConLocMaxN%s%s",pname[i].Data(),sMatched[j].Data()),
+                                           Form("Asymmetry vs E for mass range [%2.2f-%2.2f], %s, for N Local max > 2",
+                                                GetCaloPID()->GetPhotonMinMass(),GetCaloPID()->GetPhotonMaxMass(),ptype[i].Data()),
+                                           nptbins,ptmin,ptmax,mbins,mmin,mmax); 
+      fhAsyConLocMaxN[i][j]   ->SetYTitle("Asymmetry");
+      fhAsyConLocMaxN[i][j]   ->SetXTitle("E (GeV)");
+      outputContainer->Add(fhAsyConLocMaxN[i][j]) ; 
+      
     } // matched, not matched
     
       for(Int_t j = 0; j < 4; j++)
@@ -821,7 +951,6 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
  
   for(Int_t i = 0; i < 4; i++)
   {  
-    
     if(IsDataMC())
     {
       fhMCAsymM02NLocMax1MCPi0Ebin[i]  = new TH2F(Form("hMCAsymM02NLocMax1MCPi0Ebin%d",i),
@@ -991,30 +1120,6 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
       outputContainer->Add(fhTrackMatchedDPhiLocMaxN[i]) ;    
     }
   }
-  //Asymmetry histo
-  for(Int_t j = 0; j < 2; j++)
-  {  
-    fhAsymNLocMax1[j]  = new TH2F(Form("hAsymNLocMax1%s",sMatched[j].Data()),
-                                      Form("Asymmetry of NLM=1  vs cluster Energy, %s",sMatched[j].Data()),
-                                      nptbins,ptmin,ptmax,200,-1,1); 
-    fhAsymNLocMax1[j]->SetYTitle("#alpha (rad)");
-    fhAsymNLocMax1[j]->SetXTitle("E (GeV)");
-    outputContainer->Add(fhAsymNLocMax1[j]) ;   
-    
-    fhAsymNLocMax2[j]  = new TH2F(Form("hAsymNLocMax2%s",sMatched[j].Data()),
-                                      Form("Asymmetry of NLM=2  vs cluster Energy, %s",sMatched[j].Data()),
-                                      nptbins,ptmin,ptmax,200,-1,1); 
-    fhAsymNLocMax2[j]->SetYTitle("#alpha (rad)");
-    fhAsymNLocMax2[j]->SetXTitle("E (GeV)");
-    outputContainer->Add(fhAsymNLocMax2[j]) ;   
-    
-    fhAsymNLocMaxN[j]  = new TH2F(Form("hAsymNLocMaxN%s",sMatched[j].Data()),
-                                      Form("Asymmetry of NLM>2  vs cluster Energy, %s",sMatched[j].Data()),
-                                      nptbins,ptmin,ptmax,200,-1,1); 
-    fhAsymNLocMaxN[j]->SetYTitle("(E_{1}-E_{2})/(E_{1}+E_{2})");
-    fhAsymNLocMaxN[j]->SetXTitle("E (GeV)");
-    outputContainer->Add(fhAsymNLocMaxN[j]) ;   
-  }
   
   if(fFillAngleHisto)
   {
@@ -1043,21 +1148,21 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
       outputContainer->Add(fhAnglePairLocMaxN[j]) ;   
       
       fhAnglePairMassLocMax1[j]  = new TH2F(Form("hAnglePairMassLocMax1%s",sMatched[j].Data()),
-                                            Form("Opening angle of 2 highest energy cells vs Mass for E > 7 GeV, %s",sMatched[j].Data()),
+                                            Form("Opening angle of 2 highest energy cells vs Mass for E > 8 GeV, %s",sMatched[j].Data()),
                                             mbins,mmin,mmax,200,0,0.2); 
       fhAnglePairMassLocMax1[j]->SetXTitle("M (GeV/c^{2})");
       fhAnglePairMassLocMax1[j]->SetYTitle("#alpha (rad)");
       outputContainer->Add(fhAnglePairMassLocMax1[j]) ;   
       
       fhAnglePairMassLocMax2[j]  = new TH2F(Form("hAnglePairMassLocMax2%s",sMatched[j].Data()),
-                                            Form("Opening angle of 2 local maxima cells vs Mass for E > 7 GeV, %s",sMatched[j].Data()),
+                                            Form("Opening angle of 2 local maxima cells vs Mass for E > 8 GeV, %s",sMatched[j].Data()),
                                             mbins,mmin,mmax,200,0,0.2); 
       fhAnglePairMassLocMax2[j]->SetXTitle("M (GeV/c^{2})");
       fhAnglePairMassLocMax2[j]->SetYTitle("#alpha (rad)");
       outputContainer->Add(fhAnglePairMassLocMax2[j]) ;   
       
       fhAnglePairMassLocMaxN[j]  = new TH2F(Form("hAnglePairMassLocMaxN%s",sMatched[j].Data()),
-                                            Form("Opening angle of N>2 local maxima cells vs Mass for E > 7 GeV, %s",sMatched[j].Data()),
+                                            Form("Opening angle of N>2 local maxima cells vs Mass for E > 8 GeV, %s",sMatched[j].Data()),
                                             mbins,mmin,mmax,200,0,0.2); 
       fhAnglePairMassLocMaxN[j]->SetXTitle("M (GeV/c^{2})");
       fhAnglePairMassLocMaxN[j]->SetYTitle("#alpha (rad)");
@@ -1066,6 +1171,31 @@ TList * AliAnaInsideClusterInvariantMass::GetCreateOutputObjects()
     }
   }
   
+  for(Int_t j = 0; j < 2; j++)
+  {  
+  fhSplitEFractionvsAsyNLocMax1[j]     = new TH2F(Form("hSplitEFractionvsAsyNLocMax1%s",sMatched[j].Data()),
+                                                Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max  = 1, E>8, %s",sMatched[j].Data()),
+                                                100,-1,1,120,0,1.2); 
+  fhSplitEFractionvsAsyNLocMax1[j]   ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
+  fhSplitEFractionvsAsyNLocMax1[j]   ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
+  outputContainer->Add(fhSplitEFractionvsAsyNLocMax1[j]) ; 
+  
+  fhSplitEFractionvsAsyNLocMax2[j]     = new TH2F(Form("hSplitEFractionvsAsyNLocMax2%s",sMatched[j].Data()),
+                                                Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max  = 2,E>8, %s",sMatched[j].Data()),
+                                                100,-1,1,120,0,1.2); 
+  fhSplitEFractionvsAsyNLocMax2[j]   ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
+  fhSplitEFractionvsAsyNLocMax2[j]   ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
+  outputContainer->Add(fhSplitEFractionvsAsyNLocMax2[j]) ; 
+  
+  fhSplitEFractionvsAsyNLocMaxN[j]    = new TH2F(Form("hSplitEFractionvsAsyNLocMaxN%s",sMatched[j].Data()),
+                                               Form("(E1+E2)/E_{cluster} vs (E_{split1}-E_{split2})/(E_{split1}+E_{split2}) for N max  > 2, E>8, %s",sMatched[j].Data()),
+                                               100,-1,1,120,0,1.2); 
+  fhSplitEFractionvsAsyNLocMaxN[j]   ->SetXTitle("(E_{split1}-E_{split2})/(E_{split1}+E_{split2})");
+  fhSplitEFractionvsAsyNLocMaxN[j]   ->SetYTitle("(E_{split1}+E_{split2})/E_{cluster}");
+  outputContainer->Add(fhSplitEFractionvsAsyNLocMaxN[j]) ; 
+  }
+   
+  
   return outputContainer ;
   
 }
@@ -1132,6 +1262,8 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     cells = GetEMCALCells();
   }
   
+  const Float_t ecut = 8.; // Fixed cut for some histograms
+  
   if(!pl || !cells) 
   {
     Info("MakeAnalysisFillHistograms","TObjArray with %s clusters is NULL!\n",fCalorimeter.Data());
@@ -1182,7 +1314,9 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     }
     
     Float_t splitFrac = (e1+e2)/en;
-
+    Float_t asym = -10;
+    if(e1+e2>0) asym = (e1-e2)/(e1+e2);
+    
     Bool_t  matched   = IsTrackMatched(cluster,GetReader()->GetInputEvent());
     
     fhNLocMax[0][matched]->Fill(en,nMax);
@@ -1191,17 +1325,20 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     { 
       fhM02NLocMax1[0][matched]->Fill(en,l0) ; 
       fhSplitEFractionNLocMax1[0][matched]->Fill(en,splitFrac) ; 
+      if(en > ecut) fhSplitEFractionvsAsyNLocMax1[matched]->Fill(asym,splitFrac) ; 
       if(fFillSSExtraHisto) fhNCellNLocMax1[0][matched]->Fill(en,nc) ; 
     }
     else if( nMax == 2  ) 
     { 
       fhM02NLocMax2[0][matched]->Fill(en,l0) ; 
       fhSplitEFractionNLocMax2[0][matched]->Fill(en,splitFrac) ; 
+      if(en > ecut) fhSplitEFractionvsAsyNLocMax2[matched]->Fill(asym,splitFrac) ; 
       if(fFillSSExtraHisto) fhNCellNLocMax2[0][matched]->Fill(en,nc) ; }
     else if( nMax >= 3  ) 
     { 
       fhM02NLocMaxN[0][matched]->Fill(en,l0) ; 
       fhSplitEFractionNLocMaxN[0][matched]->Fill(en,splitFrac) ; 
+      if(en > ecut) fhSplitEFractionvsAsyNLocMaxN[matched]->Fill(asym,splitFrac) ; 
       if(fFillSSExtraHisto) fhNCellNLocMaxN[0][matched]->Fill(en,nc) ; 
     }
     else printf("N max smaller than 1 -> %d \n",nMax);
@@ -1298,7 +1435,7 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     
     if     (nMax==1) 
     { 
-      if( en > 7 ) 
+      if( en > ecut ) 
       {      
         fhMassM02NLocMax1    [0][matched]->Fill(l0     ,  mass ); 
         if(fFillSSExtraHisto)
@@ -1354,7 +1491,7 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     }  
     else if(nMax==2) 
     {
-      if( en > 7 ) 
+      if( en > ecut ) 
       {      
         fhMassM02NLocMax2    [0][matched]->Fill(l0     ,  mass ); 
         if(fFillSSExtraHisto)
@@ -1410,7 +1547,7 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     }
     else if(nMax > 2 ) 
     {
-      if( en > 7 ) 
+      if( en > ecut ) 
       {      
         fhMassM02NLocMaxN    [0][matched]->Fill(l0     ,  mass ); 
         if(fFillSSExtraHisto)
@@ -1472,75 +1609,84 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
     
     fhNLocMaxM02Cut[0][matched]->Fill(en,nMax);
     if(IsDataMC()) fhNLocMaxM02Cut[mcindex][matched]->Fill(en,nMax);
-    
-    Float_t asym = -10;
-    if(e1+e2>0) asym = (e1-e2)/(e1+e2);
-    
+        
     if     (nMax==1) 
     { 
       fhMassNLocMax1[0][matched]->Fill(en,mass ); 
-      fhAsymNLocMax1   [matched]->Fill(en,asym ); 
+      fhAsymNLocMax1[0][matched]->Fill(en,asym ); 
       // Effect of cuts in mass histograms 
       if(splitFrac > 0.85 && !matched)
       {
         fhMassSplitECutNLocMax1->Fill(en,mass ); 
-        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))fhMassM02CutNLocMax1->Fill(en,mass);
+        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))
+        {
+          fhMassM02CutNLocMax1->Fill(en,mass);
+          if(TMath::Abs(asym) < 0.8) fhMassAsyCutNLocMax1->Fill(en,mass);
+        }
       }
       
       if(fFillAngleHisto) 
       {
         fhAnglePairLocMax1[matched]->Fill(en,angle);
-      if( en > 7 ) 
+      if( en > ecut ) 
         fhAnglePairMassLocMax1[matched]->Fill(mass,angle);
       }
       
-      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax1[0][matched]->Fill(en,l0); fhMassConLocMax1[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax1[0][matched]->Fill(en,l0); fhMassPi0LocMax1[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax1[0][matched]->Fill(en,l0); fhMassEtaLocMax1[0][matched]->Fill(en,mass); }
+      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax1[0][matched]->Fill(en,l0); fhMassConLocMax1[0][matched]->Fill(en,mass);  fhAsyConLocMax1[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax1[0][matched]->Fill(en,l0); fhMassPi0LocMax1[0][matched]->Fill(en,mass);  fhAsyPi0LocMax1[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax1[0][matched]->Fill(en,l0); fhMassEtaLocMax1[0][matched]->Fill(en,mass);  fhAsyEtaLocMax1[0][matched]->Fill(en,asym); }
     }  
     else if(nMax==2) 
     {
       fhMassNLocMax2[0][matched]->Fill(en,mass );
-      fhAsymNLocMax2   [matched]->Fill(en,asym ); 
+      fhAsymNLocMax2[0][matched]->Fill(en,asym ); 
       // Effect of cuts in mass histograms 
       if(splitFrac > 0.85 && !matched)
       {
         fhMassSplitECutNLocMax2->Fill(en,mass); 
-        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))fhMassM02CutNLocMax2->Fill(en,mass);
+        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))
+        {
+          fhMassM02CutNLocMax2->Fill(en,mass);
+          if(TMath::Abs(asym) < 0.8) fhMassAsyCutNLocMax2->Fill(en,mass);
+        }
       }
       
       if(fFillAngleHisto) 
       {
         fhAnglePairLocMax2[matched]->Fill(en,angle);
-        if( en > 7 ) 
+        if( en > ecut ) 
           fhAnglePairMassLocMax2[matched]->Fill(mass,angle);
       }
       
-      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax2[0][matched]->Fill(en,l0); fhMassConLocMax2[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax2[0][matched]->Fill(en,l0); fhMassPi0LocMax2[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax2[0][matched]->Fill(en,l0); fhMassEtaLocMax2[0][matched]->Fill(en,mass); }      
+      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax2[0][matched]->Fill(en,l0); fhMassConLocMax2[0][matched]->Fill(en,mass);  fhAsyConLocMax2[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax2[0][matched]->Fill(en,l0); fhMassPi0LocMax2[0][matched]->Fill(en,mass);  fhAsyPi0LocMax2[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax2[0][matched]->Fill(en,l0); fhMassEtaLocMax2[0][matched]->Fill(en,mass);  fhAsyEtaLocMax2[0][matched]->Fill(en,asym); }      
     }
     else if(nMax >2) 
     {
       fhMassNLocMaxN[0][matched]->Fill(en,mass);
-      fhAsymNLocMaxN   [matched]->Fill(en,asym); 
+      fhAsymNLocMaxN[0][matched]->Fill(en,asym); 
       // Effect of cuts in mass histograms
       if(splitFrac > 0.85 && !matched)
       {
         fhMassSplitECutNLocMaxN->Fill(en,mass ); 
-        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))fhMassM02CutNLocMaxN->Fill(en,mass);
+        if(GetCaloPID()->IsInSplitM02Range(en,l0,nMax))
+        {
+          fhMassM02CutNLocMaxN->Fill(en,mass);
+          if(TMath::Abs(asym) < 0.8) fhMassAsyCutNLocMaxN->Fill(en,mass);
+        }
       }
       
       if(fFillAngleHisto) 
       {
         fhAnglePairLocMaxN[matched]->Fill(en,angle);
-        if( en > 7 ) 
+        if( en > ecut ) 
           fhAnglePairMassLocMaxN[matched]->Fill(mass,angle);
       }
       
-      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMaxN[0][matched]->Fill(en,l0); fhMassConLocMaxN[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMaxN[0][matched]->Fill(en,l0); fhMassPi0LocMaxN[0][matched]->Fill(en,mass); }
-      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMaxN[0][matched]->Fill(en,l0); fhMassEtaLocMaxN[0][matched]->Fill(en,mass); } 
+      if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMaxN[0][matched]->Fill(en,l0); fhMassConLocMaxN[0][matched]->Fill(en,mass);  fhAsyConLocMaxN[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMaxN[0][matched]->Fill(en,l0); fhMassPi0LocMaxN[0][matched]->Fill(en,mass);  fhAsyPi0LocMaxN[0][matched]->Fill(en,asym); }
+      else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMaxN[0][matched]->Fill(en,l0); fhMassEtaLocMaxN[0][matched]->Fill(en,mass);  fhAsyEtaLocMaxN[0][matched]->Fill(en,asym); 
     }
     
     
@@ -1549,24 +1695,27 @@ void  AliAnaInsideClusterInvariantMass::MakeAnalysisFillHistograms()
       if     (nMax==1) 
       { 
         fhMassNLocMax1[mcindex][matched]->Fill(en,mass); 
-        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax1[mcindex][matched]->Fill(en,l0); fhMassConLocMax1[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax1[mcindex][matched]->Fill(en,l0); fhMassPi0LocMax1[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax1[mcindex][matched]->Fill(en,l0); fhMassEtaLocMax1[mcindex][matched]->Fill(en,mass); } 
+        fhAsymNLocMax1[mcindex][matched]->Fill(en,asym); 
+        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax1[mcindex][matched]->Fill(en,l0); fhMassConLocMax1[mcindex][matched]->Fill(en,mass); fhAsyConLocMax1[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax1[mcindex][matched]->Fill(en,l0); fhMassPi0LocMax1[mcindex][matched]->Fill(en,mass); fhAsyPi0LocMax1[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax1[mcindex][matched]->Fill(en,l0); fhMassEtaLocMax1[mcindex][matched]->Fill(en,mass); fhAsyEtaLocMax1[mcindex][matched]->Fill(en,asym); } 
       }  
       else if(nMax==2) 
       {
         fhMassNLocMax2[mcindex][matched]->Fill(en,mass);
-        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax2[mcindex][matched]->Fill(en,l0); fhMassConLocMax2[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax2[mcindex][matched]->Fill(en,l0); fhMassPi0LocMax2[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax2[mcindex][matched]->Fill(en,l0); fhMassEtaLocMax2[mcindex][matched]->Fill(en,mass); } 
+        fhAsymNLocMax2[mcindex][matched]->Fill(en,asym); 
+        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMax2[mcindex][matched]->Fill(en,l0); fhMassConLocMax2[mcindex][matched]->Fill(en,mass); fhAsyConLocMax2[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMax2[mcindex][matched]->Fill(en,l0); fhMassPi0LocMax2[mcindex][matched]->Fill(en,mass); fhAsyPi0LocMax2[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMax2[mcindex][matched]->Fill(en,l0); fhMassEtaLocMax2[mcindex][matched]->Fill(en,mass); fhAsyEtaLocMax2[mcindex][matched]->Fill(en,asym); } 
         
       }
       else if(nMax >2) 
       {
         fhMassNLocMaxN[mcindex][matched]->Fill(en,mass);
-        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMaxN[mcindex][matched]->Fill(en,l0); fhMassConLocMaxN[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMaxN[mcindex][matched]->Fill(en,l0); fhMassPi0LocMaxN[mcindex][matched]->Fill(en,mass); }
-        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMaxN[mcindex][matched]->Fill(en,l0); fhMassEtaLocMaxN[mcindex][matched]->Fill(en,mass); } 
+        fhAsymNLocMaxN[mcindex][matched]->Fill(en,asym); 
+        if     (pidTag==AliCaloPID::kPhoton) { fhM02ConLocMaxN[mcindex][matched]->Fill(en,l0); fhMassConLocMaxN[mcindex][matched]->Fill(en,mass); fhAsyConLocMaxN[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kPi0   ) { fhM02Pi0LocMaxN[mcindex][matched]->Fill(en,l0); fhMassPi0LocMaxN[mcindex][matched]->Fill(en,mass); fhAsyPi0LocMaxN[mcindex][matched]->Fill(en,asym); }
+        else if(pidTag==AliCaloPID::kEta)    { fhM02EtaLocMaxN[mcindex][matched]->Fill(en,l0); fhMassEtaLocMaxN[mcindex][matched]->Fill(en,mass); fhAsyEtaLocMaxN[mcindex][matched]->Fill(en,asym); } 
       }
       
     }//Work with MC truth first
index 396b3befe15b3ebbadc8d9fdc2216e610720751f..d3524833eb76c4d54b024586605de8b41cbf3fb1 100755 (executable)
@@ -82,147 +82,167 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
 
   //Histograms
   
-  TH2F       * fhMassNLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
-  TH2F       * fhMassNLocMax2[7][2]  ; //! Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
-  TH2F       * fhMassNLocMaxN[7][2]  ; //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
+  TH2F       * fhMassNLocMax1[7][2]  ;                  //! Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
+  TH2F       * fhMassNLocMax2[7][2]  ;                  //! Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
+  TH2F       * fhMassNLocMaxN[7][2]  ;                  //! Mass of >2 cells local maxima vs E, 1-6 for different MC particle types
 
-  TH2F       * fhAsymNLocMax1[2]     ; //! Asymmetry of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
-  TH2F       * fhAsymNLocMax2[2]     ; //! Asymmetry of 2 cells local maxima vs E,  1-6 for different MC particle types
-  TH2F       * fhAsymNLocMaxN[2]     ; //! Asymmetry of >2 cells local maxima vs E, 1-6 for different MC particle types
+  TH2F       * fhAsymNLocMax1[7][2]  ;                  //! Asymmetry of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
+  TH2F       * fhAsymNLocMax2[7][2]  ;                  //! Asymmetry of 2 cells local maxima vs E,  1-6 for different MC particle types
+  TH2F       * fhAsymNLocMaxN[7][2]  ;                  //! Asymmetry of >2 cells local maxima vs E, 1-6 for different MC particle types
   
-  TH2F       * fhMassM02CutNLocMax1  ; //! M02(E) selection, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
-  TH2F       * fhMassM02CutNLocMax2  ; //! M02(E) selection, not matched, Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
-  TH2F       * fhMassM02CutNLocMaxN  ; //! M02(E) selection, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types  
+  TH2F       * fhSplitEFractionvsAsyNLocMax1[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1 vs |A|
+  TH2F       * fhSplitEFractionvsAsyNLocMax2[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2 vs |A|
+  TH2F       * fhSplitEFractionvsAsyNLocMaxN[2] ;       //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2 vs |A|  
+  
+  TH2F       * fhMassM02CutNLocMax1  ;                  //! M02(E) selection, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
+  TH2F       * fhMassM02CutNLocMax2  ;                  //! M02(E) selection, not matched, Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
+  TH2F       * fhMassM02CutNLocMaxN  ;                  //! M02(E) selection, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types  
 
-  TH2F       * fhMassSplitECutNLocMax1 ; //! 85% of split energy, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
-  TH2F       * fhMassSplitECutNLocMax2 ; //! 85% of split energy, not matched, Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
-  TH2F       * fhMassSplitECutNLocMaxN ; //! 85% of split energy, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types    
+  TH2F       * fhMassSplitECutNLocMax1 ;                //! 85% of split energy, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
+  TH2F       * fhMassSplitECutNLocMax2 ;                //! 85% of split energy, not matched, Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
+  TH2F       * fhMassSplitECutNLocMaxN ;                //! 85% of split energy, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types    
+  
+  TH2F       * fhMassAsyCutNLocMax1  ;                  //! |A|>0.8 selection, not matched, Mass of 2 highest energy cells when 1 local max vs E, 1-6 for different MC particle types 
+  TH2F       * fhMassAsyCutNLocMax2  ;                  //! |A|>0.8 selection, not matched, Mass of 2 cells local maxima vs E,  1-6 for different MC particle types
+  TH2F       * fhMassAsyCutNLocMaxN  ;                  //! |A|>0.8 selection, not matched, Mass of >2 cells local maxima vs E, 1-6 for different MC particle types  
   
-  TH2F       * fhMassM02NLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
-  TH2F       * fhMassM02NLocMax2[7][2]  ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
-  TH2F       * fhMassM02NLocMaxN[7][2]  ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
+  TH2F       * fhMassM02NLocMax1[7][2]  ;               //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
+  TH2F       * fhMassM02NLocMax2[7][2]  ;               //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
+  TH2F       * fhMassM02NLocMaxN[7][2]  ;               //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
   
-  TH2F       * fhMassM02NLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
-  TH2F       * fhMassM02NLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
-  TH2F       * fhMassM02NLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
+  TH2F       * fhMassM02NLocMax1Ebin[4] ;               //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
+  TH2F       * fhMassM02NLocMax2Ebin[4] ;               //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
+  TH2F       * fhMassM02NLocMaxNEbin[4] ;               //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
   
-  TH2F       * fhMassDispEtaNLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
-  TH2F       * fhMassDispEtaNLocMax2[7][2]  ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
-  TH2F       * fhMassDispEtaNLocMaxN[7][2]  ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
+  TH2F       * fhMassDispEtaNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
+  TH2F       * fhMassDispEtaNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
+  TH2F       * fhMassDispEtaNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
   
-  TH2F       * fhMassDispEtaNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
-  TH2F       * fhMassDispEtaNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
-  TH2F       * fhMassDispEtaNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
+  TH2F       * fhMassDispEtaNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
+  TH2F       * fhMassDispEtaNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
+  TH2F       * fhMassDispEtaNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
   
-  TH2F       * fhMassDispPhiNLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
-  TH2F       * fhMassDispPhiNLocMax2[7][2]  ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
-  TH2F       * fhMassDispPhiNLocMaxN[7][2]  ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
+  TH2F       * fhMassDispPhiNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
+  TH2F       * fhMassDispPhiNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
+  TH2F       * fhMassDispPhiNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
   
-  TH2F       * fhMassDispPhiNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
-  TH2F       * fhMassDispPhiNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
-  TH2F       * fhMassDispPhiNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
+  TH2F       * fhMassDispPhiNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
+  TH2F       * fhMassDispPhiNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
+  TH2F       * fhMassDispPhiNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
   
-  TH2F       * fhMassDispAsyNLocMax1[7][2]  ; //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
-  TH2F       * fhMassDispAsyNLocMax2[7][2]  ; //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
-  TH2F       * fhMassDispAsyNLocMaxN[7][2]  ; //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
+  TH2F       * fhMassDispAsyNLocMax1[7][2]  ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, for E > 7 GeV, 1-6 for different MC particle types 
+  TH2F       * fhMassDispAsyNLocMax2[7][2]  ;           //! Mass of 2 cells local maxima, vs M02, for E > 7 GeV,  1-6 for different MC particle types
+  TH2F       * fhMassDispAsyNLocMaxN[7][2]  ;           //! Mass of >2 cells local maxima, vs M02, for E > 7 GeV, 1-6 for different MC particle types  
   
-  TH2F       * fhMassDispAsyNLocMax1Ebin[4] ; //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
-  TH2F       * fhMassDispAsyNLocMax2Ebin[4] ; //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
-  TH2F       * fhMassDispAsyNLocMaxNEbin[4] ; //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
+  TH2F       * fhMassDispAsyNLocMax1Ebin[4] ;           //! Mass of 2 highest energy cells when 1 local max, vs M02, 4 E bins, neutral clusters 
+  TH2F       * fhMassDispAsyNLocMax2Ebin[4] ;           //! Mass of 2 cells local maxima, vs M02, 4 E bins, neutral clusters
+  TH2F       * fhMassDispAsyNLocMaxNEbin[4] ;           //! Mass of >2 cells local maxima, vs M02, 4 E bins, neutral clusters  
   
-  TH2F       * fhNLocMax      [7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types
-  TH2F       * fhNLocMaxM02Cut[7][2] ; //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut
+  TH2F       * fhNLocMax      [7][2] ;                  //! Number of maxima in cluster vs E, 1-6 for different MC particle types
+  TH2F       * fhNLocMaxM02Cut[7][2] ;                  //! Number of maxima in cluster vs E, 1-6 for different MC particle types, after SS cut
 
-  TH2F       * fhM02NLocMax1  [7][2] ; //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types
-  TH2F       * fhM02NLocMax2  [7][2] ; //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types
-  TH2F       * fhM02NLocMaxN  [7][2] ; //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types
+  TH2F       * fhM02NLocMax1  [7][2] ;                  //! M02 vs E for N max in cluster = 1, 1-6 for different MC particle types
+  TH2F       * fhM02NLocMax2  [7][2] ;                  //! M02 vs E for N max in cluster = 2, 1-6 for different MC particle types
+  TH2F       * fhM02NLocMaxN  [7][2] ;                  //! M02 vs E for N max in cluster > 2, 1-6 for different MC particle types
   
-  TH2F       * fhMCAsymM02NLocMax1MCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster = 1, for 4 energy bins
-  TH2F       * fhMCAsymM02NLocMax2MCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster = 2, for 4 energy bins
-  TH2F       * fhMCAsymM02NLocMaxNMCPi0Ebin[4] ; //! M02 vs decay asymmetry for N max in cluster > 2, for 4 energy bins
+  TH2F       * fhMCAsymM02NLocMax1MCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster = 1, for 4 energy bins
+  TH2F       * fhMCAsymM02NLocMax2MCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster = 2, for 4 energy bins
+  TH2F       * fhMCAsymM02NLocMaxNMCPi0Ebin[4] ;        //! M02 vs decay asymmetry for N max in cluster > 2, for 4 energy bins
   
-  TH2F       * fhMCGenFracNLocMax1[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
-  TH2F       * fhMCGenFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
-  TH2F       * fhMCGenFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
+  TH2F       * fhMCGenFracNLocMax1[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
+  TH2F       * fhMCGenFracNLocMax2[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
+  TH2F       * fhMCGenFracNLocMaxN[7][2] ;              //! E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
   
-  TH2F       * fhMCGenSplitEFracNLocMax1[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
-  TH2F       * fhMCGenSplitEFracNLocMax2[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
-  TH2F       * fhMCGenSplitEFracNLocMaxN[7][2] ; //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
+  TH2F       * fhMCGenSplitEFracNLocMax1[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
+  TH2F       * fhMCGenSplitEFracNLocMax2[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
+  TH2F       * fhMCGenSplitEFracNLocMaxN[7][2] ;        //! E generated particle / E1+E2 reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
   
   TH2F       * fhMCGenEFracvsSplitEFracNLocMax1[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 1, 1-6 for different MC particle types
   TH2F       * fhMCGenEFracvsSplitEFracNLocMax2[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster = 2, 1-6 for different MC particle types
   TH2F       * fhMCGenEFracvsSplitEFracNLocMaxN[7][2] ; //! E generated particle / E reconstructed vs E1+E2 reconstructed / E reconstructed for N max in cluster > 2, 1-6 for different MC particle types  
   
-  TH2F       * fhMCGenEvsSplitENLocMax1[7][2] ; //! E generated particle vs E1+E2 for N max in cluster = 1, 1-6 for different MC particle types
-  TH2F       * fhMCGenEvsSplitENLocMax2[7][2] ; //! E generated particle vs E1+E2 for N max in cluster = 2, 1-6 for different MC particle types
-  TH2F       * fhMCGenEvsSplitENLocMaxN[7][2] ; //! E generated particle vs E1+E2 for N max in cluster > 2, 1-6 for different MC particle types  
+  TH2F       * fhMCGenEvsSplitENLocMax1[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster = 1, 1-6 for different MC particle types
+  TH2F       * fhMCGenEvsSplitENLocMax2[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster = 2, 1-6 for different MC particle types
+  TH2F       * fhMCGenEvsSplitENLocMaxN[7][2] ;         //! E generated particle vs E1+E2 for N max in cluster > 2, 1-6 for different MC particle types  
   
-  TH2F       * fhMCGenFracNLocMaxEbin[7][4] ;    //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, not matched to track
-  TH2F       * fhMCGenFracNLocMaxEbinMatched[7][4] ; //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, matched to track
+  TH2F       * fhMCGenFracNLocMaxEbin[7][4] ;           //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, not matched to track
+  TH2F       * fhMCGenFracNLocMaxEbinMatched[7][4] ;    //! NLM vs E generated particle / E reconstructed vs E reconstructed 1-6 for different MC particle types, matched to track
   
-  TH2F       * fhM02MCGenFracNLocMax1Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
-  TH2F       * fhM02MCGenFracNLocMax2Ebin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
-  TH2F       * fhM02MCGenFracNLocMaxNEbin[7][4] ; //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
+  TH2F       * fhM02MCGenFracNLocMax1Ebin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
+  TH2F       * fhM02MCGenFracNLocMax2Ebin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
+  TH2F       * fhM02MCGenFracNLocMaxNEbin[7][4] ;       //! M02 vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
   
-  TH2F       * fhMassMCGenFracNLocMax1Ebin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
-  TH2F       * fhMassMCGenFracNLocMax2Ebin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
-  TH2F       * fhMassMCGenFracNLocMaxNEbin[7][4] ; //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
+  TH2F       * fhMassMCGenFracNLocMax1Ebin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 1, 1-6 for different MC particle types, not track matched
+  TH2F       * fhMassMCGenFracNLocMax2Ebin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster = 2, 1-6 for different MC particle types, not track matched
+  TH2F       * fhMassMCGenFracNLocMaxNEbin[7][4] ;      //! Mass vs E generated particle / E reconstructed vs E reconstructed for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
   
-  TH2F       * fhNCellNLocMax1[7][2] ; //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types
-  TH2F       * fhNCellNLocMax2[7][2] ; //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types
-  TH2F       * fhNCellNLocMaxN[7][2] ; //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types
+  TH2F       * fhNCellNLocMax1[7][2] ;                  //! n cells in cluster vs E for N max in cluster = 1, 1-6 for different MC particle types
+  TH2F       * fhNCellNLocMax2[7][2] ;                  //! n cells in cluster vs E for N max in cluster = 2, 1-6 for different MC particle types
+  TH2F       * fhNCellNLocMaxN[7][2] ;                  //! n cells in cluster vs E for N max in cluster > 2, 1-6 for different MC particle types
   
-  TH2F       * fhM02Pi0LocMax1[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 1
-  TH2F       * fhM02EtaLocMax1[7][2] ; //! M02 for Mass around eta, N Local Maxima = 1
-  TH2F       * fhM02ConLocMax1[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 1
+  TH2F       * fhM02Pi0LocMax1[7][2] ;                  //! M02 for Mass around pi0, N Local Maxima = 1
+  TH2F       * fhM02EtaLocMax1[7][2] ;                  //! M02 for Mass around eta, N Local Maxima = 1
+  TH2F       * fhM02ConLocMax1[7][2] ;                  //! M02 for Mass around close to 0, N Local Maxima = 1
 
-  TH2F       * fhM02Pi0LocMax2[7][2] ; //! M02 for Mass around pi0, N Local Maxima = 2
-  TH2F       * fhM02EtaLocMax2[7][2] ; //! M02 for Mass around eta, N Local Maxima = 2
-  TH2F       * fhM02ConLocMax2[7][2] ; //! M02 for Mass around close to 0, N Local Maxima = 2
+  TH2F       * fhM02Pi0LocMax2[7][2] ;                  //! M02 for Mass around pi0, N Local Maxima = 2
+  TH2F       * fhM02EtaLocMax2[7][2] ;                  //! M02 for Mass around eta, N Local Maxima = 2
+  TH2F       * fhM02ConLocMax2[7][2] ;                  //! M02 for Mass around close to 0, N Local Maxima = 2
   
-  TH2F       * fhM02Pi0LocMaxN[7][2] ; //! M02 for Mass around pi0, N Local Maxima > 2
-  TH2F       * fhM02EtaLocMaxN[7][2] ; //! M02 for Mass around eta, N Local Maxima > 2
-  TH2F       * fhM02ConLocMaxN[7][2] ; //! M02 for Mass around close to 0, N Local Maxima > 2
+  TH2F       * fhM02Pi0LocMaxN[7][2] ;                  //! M02 for Mass around pi0, N Local Maxima > 2
+  TH2F       * fhM02EtaLocMaxN[7][2] ;                  //! M02 for Mass around eta, N Local Maxima > 2
+  TH2F       * fhM02ConLocMaxN[7][2] ;                  //! M02 for Mass around close to 0, N Local Maxima > 2
 
-  TH2F       * fhMassPi0LocMax1[7][2] ; //! Mass for selected pi0, N Local Maxima = 1
-  TH2F       * fhMassEtaLocMax1[7][2] ; //! Mass for selected around eta, N Local Maxima = 1
-  TH2F       * fhMassConLocMax1[7][2] ; //! Mass for selected around close to 0, N Local Maxima = 1
+  TH2F       * fhMassPi0LocMax1[7][2] ;                 //! Mass for selected pi0, N Local Maxima = 1
+  TH2F       * fhMassEtaLocMax1[7][2] ;                 //! Mass for selected around eta, N Local Maxima = 1
+  TH2F       * fhMassConLocMax1[7][2] ;                 //! Mass for selected around close to 0, N Local Maxima = 1
+  
+  TH2F       * fhMassPi0LocMax2[7][2] ;                 //! Mass for selected around pi0, N Local Maxima = 2
+  TH2F       * fhMassEtaLocMax2[7][2] ;                 //! Mass for selected around eta, N Local Maxima = 2
+  TH2F       * fhMassConLocMax2[7][2] ;                 //! Mass for selected around close to 0, N Local Maxima = 2
   
-  TH2F       * fhMassPi0LocMax2[7][2] ; //! Mass for selected around pi0, N Local Maxima = 2
-  TH2F       * fhMassEtaLocMax2[7][2] ; //! Mass for selected around eta, N Local Maxima = 2
-  TH2F       * fhMassConLocMax2[7][2] ; //! Mass for selected around close to 0, N Local Maxima = 2
+  TH2F       * fhMassPi0LocMaxN[7][2] ;                 //! Mass for selected around pi0, N Local Maxima > 2
+  TH2F       * fhMassEtaLocMaxN[7][2] ;                 //! Mass for selected around eta, N Local Maxima > 2
+  TH2F       * fhMassConLocMaxN[7][2] ;                 //! Mass for selected around close to 0, N Local Maxima > 2
   
-  TH2F       * fhMassPi0LocMaxN[7][2] ; //! Mass for selected around pi0, N Local Maxima > 2
-  TH2F       * fhMassEtaLocMaxN[7][2] ; //! Mass for selected around eta, N Local Maxima > 2
-  TH2F       * fhMassConLocMaxN[7][2] ; //! Mass for selected around close to 0, N Local Maxima > 2
+  TH2F       * fhAsyPi0LocMax1[7][2] ;                  //! Asy for Mass around pi0, N Local Maxima = 1
+  TH2F       * fhAsyEtaLocMax1[7][2] ;                  //! Asy for Mass around eta, N Local Maxima = 1
+  TH2F       * fhAsyConLocMax1[7][2] ;                  //! Asy for Mass around close to 0, N Local Maxima = 1
   
-  TH2F       * fhSplitEFractionNLocMax1[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1
-  TH2F       * fhSplitEFractionNLocMax2[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2
-  TH2F       * fhSplitEFractionNLocMaxN[7][2] ; //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2
+  TH2F       * fhAsyPi0LocMax2[7][2] ;                  //! Asy for Mass around pi0, N Local Maxima = 2
+  TH2F       * fhAsyEtaLocMax2[7][2] ;                  //! Asy for Mass around eta, N Local Maxima = 2
+  TH2F       * fhAsyConLocMax2[7][2] ;                  //! Asy for Mass around close to 0, N Local Maxima = 2
   
+  TH2F       * fhAsyPi0LocMaxN[7][2] ;                  //! Asy for Mass around pi0, N Local Maxima > 2
+  TH2F       * fhAsyEtaLocMaxN[7][2] ;                  //! Asy for Mass around eta, N Local Maxima > 2
+  TH2F       * fhAsyConLocMaxN[7][2] ;                  //! Asy for Mass around close to 0, N Local Maxima > 2  
+  
+  TH2F       * fhSplitEFractionNLocMax1[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima = 1
+  TH2F       * fhSplitEFractionNLocMax2[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima = 2
+  TH2F       * fhSplitEFractionNLocMaxN[7][2] ;         //! sum of splitted cluster energy / cluster energy for N Local Maxima > 2
+    
   TH2F       * fhMassSplitEFractionNLocMax1Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 1, 1-6 for different MC particle types, not track matched
   TH2F       * fhMassSplitEFractionNLocMax2Ebin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster = 2, 1-6 for different MC particle types, not track matched
   TH2F       * fhMassSplitEFractionNLocMaxNEbin[7][4] ; //! Mass vs sum of splitted cluster energy / cluster energy for N max in cluster > 2, 1-6 for different MC particle types, not track matched  
     
-  TH2F       * fhAnglePairLocMax1[2] ; //! pair opening angle vs E
-  TH2F       * fhAnglePairLocMax2[2] ; //! pair opening angle vs E
-  TH2F       * fhAnglePairLocMaxN[2] ; //! pair opening angle vs E
+  TH2F       * fhAnglePairLocMax1[2] ;                  //! pair opening angle vs E
+  TH2F       * fhAnglePairLocMax2[2] ;                  //! pair opening angle vs E
+  TH2F       * fhAnglePairLocMaxN[2] ;                  //! pair opening angle vs E
   
-  TH2F       * fhAnglePairMassLocMax1[2] ; //! pair opening angle vs Mass for E > 7 GeV
-  TH2F       * fhAnglePairMassLocMax2[2] ; //! pair opening angle vs Mass for E > 7 GeV
-  TH2F       * fhAnglePairMassLocMaxN[2] ; //! pair opening angle vs Mass for E > 7 GeV
+  TH2F       * fhAnglePairMassLocMax1[2] ;              //! pair opening angle vs Mass for E > 7 GeV
+  TH2F       * fhAnglePairMassLocMax2[2] ;              //! pair opening angle vs Mass for E > 7 GeV
+  TH2F       * fhAnglePairMassLocMaxN[2] ;              //! pair opening angle vs Mass for E > 7 GeV
   
-  TH2F       * fhTrackMatchedDEtaLocMax1[7] ; //! Eta distance between track and cluster vs cluster E, 1 local maximum
-  TH2F       * fhTrackMatchedDPhiLocMax1[7] ; //! Phi distance between track and cluster vs cluster E, 1 local maximum
-  TH2F       * fhTrackMatchedDEtaLocMax2[7] ; //! Eta distance between track and cluster vs cluster E, 2 local maximum
-  TH2F       * fhTrackMatchedDPhiLocMax2[7] ; //! Phi distance between track and cluster vs cluster E, 2 local maximum
-  TH2F       * fhTrackMatchedDEtaLocMaxN[7] ; //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
-  TH2F       * fhTrackMatchedDPhiLocMaxN[7] ; //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
+  TH2F       * fhTrackMatchedDEtaLocMax1[7] ;           //! Eta distance between track and cluster vs cluster E, 1 local maximum
+  TH2F       * fhTrackMatchedDPhiLocMax1[7] ;           //! Phi distance between track and cluster vs cluster E, 1 local maximum
+  TH2F       * fhTrackMatchedDEtaLocMax2[7] ;           //! Eta distance between track and cluster vs cluster E, 2 local maximum
+  TH2F       * fhTrackMatchedDPhiLocMax2[7] ;           //! Phi distance between track and cluster vs cluster E, 2 local maximum
+  TH2F       * fhTrackMatchedDEtaLocMaxN[7] ;           //! Eta distance between track and cluster vs cluster E, more than 2 local maximum
+  TH2F       * fhTrackMatchedDPhiLocMaxN[7] ;           //! Phi distance between track and cluster vs cluster E, more than 2 local maximum
   
   AliAnaInsideClusterInvariantMass(              const AliAnaInsideClusterInvariantMass & split) ; // cpy ctor
   AliAnaInsideClusterInvariantMass & operator = (const AliAnaInsideClusterInvariantMass & split) ; // cpy assignment
   
-  ClassDef(AliAnaInsideClusterInvariantMass,16)
+  ClassDef(AliAnaInsideClusterInvariantMass,17)
   
 } ;
 
index c6cf1c971ce43ad3a581cfa6ed7cfdb7045abfed..49bae9e8fd549760b87acc02df833029b7627459 100755 (executable)
@@ -50,8 +50,9 @@ ClassImp(AliAnaPi0EbE)
 AliAnaPi0EbE::AliAnaPi0EbE() : 
     AliAnaCaloTrackCorrBaseClass(),fAnaType(kIMCalo),            fCalorimeter(""),
     fMinDist(0.),fMinDist2(0.),    fMinDist3(0.),      
-    fNLMCutMin(-1),                fNLMCutMax(10),   
-    fTimeCutMin(-10000),           fTimeCutMax(10000),      
+    fNLMCutMin(-1),                fNLMCutMax(10), 
+    fSplitAsyCut(2.),
+    fTimeCutMin(-10000),           fTimeCutMax(10000),
     fFillPileUpHistograms(0),
     fFillWeightHistograms(kFALSE), fFillTMHisto(0),              
     fFillSelectClHisto(0),         fFillOnlySimpleSSHisto(1),
@@ -1899,7 +1900,7 @@ void  AliAnaPi0EbE::MakeInvMassInCalorimeterAndCTS()
       }
       
       //Mass of selected pairs
-      fhSelectedMass->Fill(epair,(mom1+mom2).M());
+      fhMass->Fill(epair,(mom1+mom2).M());
       
       //Select good pair (good phi, pt cuts, aperture and invariant mass)
       if(GetNeutralMesonSelection()->SelectPair(mom1, mom2,fCalorimeter))
@@ -2104,9 +2105,17 @@ void  AliAnaPi0EbE::MakeShowerShapeIdentification()
       printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - Pi0/Eta selection cuts passed: pT %3.2f, pdg %d\n",
                               mom.Pt(), idPartType);
     
+    fhSelectedAsymmetry->Fill(mom.E(),asy);
+
+    if(nMaxima > 1 &&  TMath::Abs(asy) > fSplitAsyCut )
+    {
+      if(GetDebug() > 1) printf("AliAnaPi0EbE::MakeShowerShapeIdentification() - Too large asymmetry\n");
+      FillRejectedClusterHistograms(mom,tag);
+      continue ;
+    }
+    
     //Mass of selected pairs
     fhSelectedMass     ->Fill(mom.E(),mass);
-    fhSelectedAsymmetry->Fill(mom.E(),asy);
 
     //-----------------------
     //Create AOD for analysis
index 0e841dc7e5af68d233b57fc49fcc51d767656265..30f7c3ef6017b371ea6db9b364da370c51238f8e 100755 (executable)
@@ -81,18 +81,23 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   void           SetCalorimeter(TString & det)               { fCalorimeter = det              ; }
   
   void           SetMinDistanceToBadChannel(Float_t m1, Float_t m2, Float_t m3) {
-                  fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                               ; }
+                  fMinDist = m1; fMinDist2 = m2; fMinDist3 = m3                                ; }
   
-  void           SetNLMCut(Double_t min, Double_t max)       { fNLMCutMin = min; 
-                                                               fNLMCutMax = max               ; }
-  Double_t       GetNLMCutMin()                        const { return fNLMCutMin              ; }
-  Double_t       GetNLMCutMax()                        const { return fNLMCutMax              ; }      
+  void           SetNLMCut(Int_t min, Int_t max)             { fNLMCutMin = min; 
+                                                               fNLMCutMax = max                ; }
+  Int_t          GetNLMCutMin()                        const { return fNLMCutMin               ; }
+  Int_t          GetNLMCutMax()                        const { return fNLMCutMax               ; }     
+  
+  void           SetSplitAsymmetryCut(Float_t cut)           { fSplitAsyCut = cut              ; }
+  Float_t        GetSplitAsymmetryCut()                const { return fSplitAsyCut             ; }
+
   
   void           SetTimeCut(Double_t min, Double_t max)      { fTimeCutMin = min; 
                                                                fTimeCutMax = max               ; }
   Double_t       GetTimeCutMin()                       const { return fTimeCutMin              ; }
   Double_t       GetTimeCutMax()                       const { return fTimeCutMax              ; }     
   
   void           SwitchOnFillPileUpHistograms()              { fFillPileUpHistograms  = kTRUE  ; }
   void           SwitchOffFillPileUpHistograms()             { fFillPileUpHistograms  = kFALSE ; }    
     
@@ -122,11 +127,12 @@ class AliAnaPi0EbE : public AliAnaCaloTrackCorrBaseClass {
   Float_t        fMinDist ;                // Minimal distance to bad channel to accept cluster
   Float_t        fMinDist2;                // Cuts on Minimal distance to study acceptance evaluation
   Float_t        fMinDist3;                // One more cut on distance used for acceptance-efficiency study
-  Double_t       fNLMCutMin  ;             // Remove clusters/cells with number of local maxima smaller than this value
-  Double_t       fNLMCutMax  ;             // Remove clusters/cells with number of local maxima larger than this value
+  Int_t          fNLMCutMin  ;             // Remove clusters/cells with number of local maxima smaller than this value
+  Int_t          fNLMCutMax  ;             // Remove clusters/cells with number of local maxima larger than this value
+  Float_t        fSplitAsyCut ;            // Remove splitted clusters with too large asymmetry and NLM>1
   Double_t       fTimeCutMin  ;            // Remove clusters/cells with time smaller than this value, in ns
   Double_t       fTimeCutMax  ;            // Remove clusters/cells with time larger than this value, in ns
-
+  
   Bool_t         fFillPileUpHistograms;    // Fill pile-up related histograms
   Bool_t         fFillWeightHistograms ;   // Fill weigth histograms
   Bool_t         fFillTMHisto;             // Fill track matching plots