]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/CaloTrackCorrelations/AliAnaInsideClusterInvariantMass.h
correcting cone exess
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaInsideClusterInvariantMass.h
index 39eb70e5f7206e6d671a8dae15d8f4abc53ef5ca..9ee9624e0f2254aa36c1972e40b4be1b378a6b5c 100755 (executable)
@@ -34,7 +34,7 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
   
   TList      * GetCreateOutputObjects();
   
-  void         FillSSWeightHistograms(AliVCluster *clus, Int_t nlm);
+  void         FillSSWeightHistograms(AliVCluster *clus, const Int_t nlm, const Int_t absId1, const Int_t absId2);
   
   void         Init();
   
@@ -52,24 +52,41 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
 
   void         SetMinBadChannelDistance(Float_t cut)     { fMinBadDist  = cut ; }
 
+  void         SetWCorrectionParameter(Float_t p = 0.07) { fWSimu       = p   ; }
+  
   void         SwitchOnFillAngleHistograms()             { fFillAngleHisto      = kTRUE  ; }
   void         SwitchOffFillAngleHistograms()            { fFillAngleHisto      = kFALSE ; }
   
   void         SwitchOnFillExtraSSHistograms()           { fFillSSExtraHisto    = kTRUE  ; }
   void         SwitchOffFillExtraSSHistograms()          { fFillSSExtraHisto    = kFALSE ; }
 
+  void         SwitchOnFillTMHistograms()                { fFillTMHisto         = kTRUE  ; }
+  void         SwitchOffFillTMHistograms()               { fFillTMHisto         = kFALSE ; }
+  
   void         SwitchOnFillTMResidualHistograms()        { fFillTMResidualHisto = kTRUE  ; }
   void         SwitchOffFillTMResidualHistograms()       { fFillTMResidualHisto = kFALSE ; }
   
   void         SwitchOnMCFractionHistograms()            { fFillMCFractionHisto = kTRUE  ; }
   void         SwitchOffMCFractionHistograms()           { fFillMCFractionHisto = kFALSE ; }
 
-  void         SwitchOnFillSSWeightHistograms()           { fFillSSWeightHisto   = kTRUE  ; }
-  void         SwitchOffFillSSWeightHistograms()          { fFillSSWeightHisto   = kFALSE ; }
+  void         SwitchOnFillSSWeightHistograms()          { fFillSSWeightHisto   = kTRUE  ; }
+  void         SwitchOffFillSSWeightHistograms()         { fFillSSWeightHisto   = kFALSE ; }
+
+  void         SwitchOnFillEbinHistograms()              { fFillEbinHisto       = kTRUE  ; }
+  void         SwitchOffFillEbinHistograms()             { fFillEbinHisto       = kFALSE ; }
   
-  void         SetNWeightForShowerShape(Int_t n)         { fSSWeightN = n ; }
+  void         SetNWeightForShowerShape(Int_t n)           { fSSWeightN = n ; }
   void         SetWeightForShowerShape(Int_t i, Float_t v) { if (i < 10) fSSWeight[i] = v ; }
 
+  void         SetNECellCutForShowerShape(Int_t n)           { fSSECellCutN = n ; }
+  void         SetECellCutForShowerShape(Int_t i, Float_t v) { if (i < 10) fSSECellCut[i] = v ; }
+
+  
+  void         RecalculateClusterShowerShapeParametersWithCellCut(const AliEMCALGeometry * geom, AliVCaloCells* cells, AliVCluster * cluster,
+                                                   Float_t & l0,   Float_t & l1,
+                                                   Float_t & disp, Float_t & dEta, Float_t & dPhi,
+                                                   Float_t & sEta, Float_t & sPhi, Float_t & sEtaPhi,Float_t eCellMin = 0.);
+
   
   //For histograms
   enum mcTypes { kmcPhoton = 1, kmcConversion = 2, kmcPi0    = 3,  
@@ -84,13 +101,21 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
   Float_t      fMinBadDist  ;          // Minimal distance to bad channel to accept cluster
   
   Bool_t       fFillAngleHisto;        // Fill splitted clusters angle histograms
+  Bool_t       fFillTMHisto ;          // Fill track matching histos,
   Bool_t       fFillTMResidualHisto ;  // Fill track matching histos, residuals
   Bool_t       fFillSSExtraHisto ;     // Fill shower shape extra histos
   Bool_t       fFillMCFractionHisto ;  // Fill MC energy fraction histos
   Bool_t       fFillSSWeightHisto ;    // Fill weigth histograms
+  Bool_t       fFillEbinHisto ;        // Fill E bin histograms
 
   Float_t      fSSWeight[10];          // List of weights to test
-  Float_t      fSSWeightN;             // Total number of weights to test
+  Int_t        fSSWeightN;             // Total number of weights to test
+  
+  Float_t      fSSECellCut[10];        // List of cell min energy cuts to test
+  Int_t        fSSECellCutN;           // Total number of cell min energy cuts to test
+  
+  Float_t      fWSimu;                 // Slope of the linear correction factor for the shower
+                                       // shape weight in simulation, about 0.07
   
   //Histograms
   
@@ -302,7 +327,14 @@ class AliAnaInsideClusterInvariantMass : public AliAnaCaloTrackCorrBaseClass {
   TH2F       * fhPi0CellE[3] ;                          //! pi0's energy vs cluster cell energy with NLM = 1, = 2, > 2 
   TH2F       * fhPi0CellEFrac[3] ;                      //! pi0's energy vs cluster cell energy fraction with NLM = 1, = 2, > 2 
   TH2F       * fhPi0CellLogEFrac[3] ;                   //! pi0's energy vs cluster log cell energy fraction with NLM = 1, = 2, > 2
+  TH2F       * fhPi0CellEMaxEMax2Frac   [3];            //! pi0's energy vs fraction of 2 main maxima energy with NLM = 1, = 2, > 2
+  TH2F       * fhPi0CellEMaxClusterFrac [3];            //! pi0's energy vs energy fraction of main   LM and cluster energy with NLM = 1, = 2, > 2
+  TH2F       * fhPi0CellEMax2ClusterFrac[3];            //! pi0's energy vs energy fraction of second LM and cluster energy with NLM = 1, = 2, > 2
+  TH2F       * fhPi0CellEMaxFrac [3];                   //! pi0's energy vs energy fraction of main LM and cluster cell energy with NLM = 1, = 2, > 2
+  TH2F       * fhPi0CellEMax2Frac [3];                  //! pi0's energy vs energy fraction of second LM and cluster cell energy with NLM = 1, = 2, > 2
+  
   TH2F       * fhM02WeightPi0[3][10] ;                  //! M02 for selected pi0 with different weight, with NLM = 1, = 2, > 2
+  TH2F       * fhM02ECellCutPi0[3][10] ;                //! M02 for selected pi0 with different cut on cell energy, with NLM = 1, = 2, > 2
 
   
   AliAnaInsideClusterInvariantMass(              const AliAnaInsideClusterInvariantMass & split) ; // cpy ctor