]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/CaloTrackCorrelations/AliAnaElectron.h
Dalitz: New histogram for photon effiVsRadius
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaElectron.h
index 134a4b66b93de10a03ff427feaf694e6f94815f9..5c33ae0211c4d0332a50495d20e747f8c802444f 100755 (executable)
@@ -17,7 +17,6 @@
 class TH2F ;
 class TH1F;
 class TH3D;
-class TString ;
 class TObjString;
 
 // --- ANALYSIS system ---
@@ -56,9 +55,9 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   
   // Analysis methods
   
-  Bool_t       ClusterSelected(AliVCluster* cl, TLorentzVector mom) ;
+  Bool_t       ClusterSelected(AliVCluster* cl, Int_t nMaxima) ;
   
-  void         FillShowerShapeHistograms( AliVCluster* cluster, const Int_t mcTag , const Int_t pidTag) ;
+  void         FillShowerShapeHistograms( AliVCluster* cluster, Int_t mcTag , Int_t pidTag) ;
   
   void         SwitchOnFillShowerShapeHistograms()    { fFillSSHistograms = kTRUE  ; }
   void         SwitchOffFillShowerShapeHistograms()   { fFillSSHistograms = kFALSE ; }  
@@ -72,9 +71,6 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   // Analysis parameters setters getters
   //---------------------------------------
   
-  TString      GetCalorimeter()                 const { return fCalorimeter        ; }
-  void         SetCalorimeter(TString  & det)         { fCalorimeter = det         ; }
-    
   // ** Cluster selection methods **
   
   void         SetdEdxCut(Double_t min, Double_t max) { fdEdxMin    = min ; 
@@ -94,10 +90,23 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
        
   void         SetNCellCut(Int_t n)                   { fNCellsCut = n             ; }
   Double_t     GetNCellCut()                    const { return fNCellsCut          ; }
-    
+  
+  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         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,       
@@ -109,14 +118,16 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   
   private:
  
-  TString  fCalorimeter ;                      // Calorimeter where the gamma is searched;
   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 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
   Int_t    fNCellsCut ;                        // Accept for the analysis clusters with more than fNCellsCut cells
+  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
   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,13 +136,35 @@ 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
 
-  //Histograms 
+  Int_t    fAODParticle;                       // Select the type of particle to put in AODs for other analysis
+  
+  TLorentzVector fMomentum;                    //! cluster momentum
+  TLorentzVector fMomentumMC;                  //! mc particle momentum
+  TVector3       fProdVertex;                  //! mc particle production vertex
+
+  //Histograms
   TH2F * fhdEdxvsE;                            //! matched track dEdx vs cluster E 
   TH2F * fhdEdxvsP;                            //! matched track dEdx vs track P
   TH2F * fhEOverPvsE;                          //! matched track E cluster over P track vs cluster E, after dEdx cut 
   TH2F * fhEOverPvsP;                          //! matched track E cluster over P track vs track P, after dEdx cut 
 
-  TH2F * fhNCellsE[2];                         //! number of cells in cluster vs E 
+  TH2F * fhdEdxvsECutM02;                      //! matched track dEdx vs cluster E, mild M02 cut
+  TH2F * fhdEdxvsPCutM02;                      //! matched track dEdx vs track P, mild M02 cut
+  TH2F * fhEOverPvsECutM02;                    //! matched track E cluster over P track vs cluster E, after dEdx cut, mild M02 cut
+  TH2F * fhEOverPvsPCutM02;                    //! matched track E cluster over P track vs track P, after dEdx cut, mild M02 cut
+  
+  TH2F * fhdEdxvsECutEOverP;                   //! matched track dEdx vs cluster E , cut on EOverP
+  TH2F * fhdEdxvsPCutEOverP;                   //! matched track dEdx vs track P, cut on EOverP
+  TH2F * fhEOverPvsECutM02CutdEdx;             //! matched track E cluster over P track vs cluster E, after dEdx cut and mild M02 cut
+  TH2F * fhEOverPvsPCutM02CutdEdx;             //! matched track E cluster over P track vs track P, after dEdx cut and mild M02 cut
+
+  TH2F * fhMCdEdxvsE[10];                       //! matched track dEdx vs cluster E, coming from MC particle
+  TH2F * fhMCdEdxvsP[10];                       //! matched track dEdx vs track P, coming from MC particle
+  TH2F * fhMCEOverPvsE[10];                     //! matched track E cluster over P track vs cluster E, after dEdx cut, coming from MC particle
+  TH2F * fhMCEOverPvsP[10];                     //! matched track E cluster over P track vs track P, after dEdx cut, coming from MC particle
+  
+  TH2F * fhNCellsE[2];                         //! number of cells in cluster vs E
+  TH2F * fhNLME[2];                            //! number of local maxima in cluster vs E
   TH2F * fhMaxCellDiffClusterE[2];             //! Fraction of energy carried by cell with maximum energy
   TH2F * fhTimeE[2];                           //! E vs Time of selected cluster 
 
@@ -197,7 +230,6 @@ class AliAnaElectron : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhMCESumEtaPhi[2][6] ;                 //! shower dispersion in eta vs phi direction from MC particle
   TH2F * fhMCEDispEtaPhiDiff[2][6] ;            //! shower dispersion in eta -phi direction from MC particle
   TH2F * fhMCESphericity[2][6] ;                //! shower sphericity, eta vs phi from MC particle
-  TH2F * fhMCDispEtaDispPhiEBin[2][6][5] ;      //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
 
   TH2F * fhMCElectronELambda0NoOverlap ;        //! E vs Lambda0 from MC electrons, no overlap
   TH2F * fhMCElectronELambda0TwoOverlap ;       //! E vs Lambda0 from MC electrons, 2 particles overlap
@@ -211,10 +243,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,5)
 
 } ;