]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGGA/CaloTrackCorrelations/AliAnaPhoton.h
Forgot initialization of new histograms
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaPhoton.h
index 4a33df660ef9b912c241e9248f7d010618e010f0..1eef0893c0f59e59988a93c86adc2b6ea3e359a2 100755 (executable)
@@ -51,7 +51,7 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   
   // Analysis methods
   
-  Bool_t       ClusterSelected(AliVCluster* cl, TLorentzVector mom) ;
+  Bool_t       ClusterSelected(AliVCluster* cl, const TLorentzVector mom, const Int_t nlm) ;
   
   void         FillAcceptanceHistograms();
 
@@ -60,6 +60,19 @@ 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  ; }
+  void         SwitchOffTMHistoFill()                 { fFillTMHisto      = kFALSE ; }
+
+  void         FillPileUpHistograms(const Float_t energy, const Float_t pt, const Float_t time) ;
+  void         FillPileUpHistogramsPerEvent(TObjArray * clusters) ;
+
+  void         SwitchOnFillPileUpHistograms()         { fFillPileUpHistograms = kTRUE  ; }
+  void         SwitchOffFillPileUpHistograms()        { fFillPileUpHistograms = kFALSE ; }    
   
   // Analysis parameters setters getters
   
@@ -79,11 +92,15 @@ class AliAnaPhoton : 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               ; }     
+  
+  
   Bool_t       IsTrackMatchRejectionOn()        const { return fRejectTrackMatch   ; }
   void         SwitchOnTrackMatchRejection()          { fRejectTrackMatch = kTRUE  ; }
   void         SwitchOffTrackMatchRejection()         { fRejectTrackMatch = kFALSE ; }  
-  void         SwitchOnTMHistoFill()                  { fFillTMHisto      = kTRUE  ; }
-  void         SwitchOffTMHistoFill()                 { fFillTMHisto      = kFALSE ; }
          
   void         FillNOriginHistograms(Int_t n)         { fNOriginHistograms = n ; 
     if(n > 14) fNOriginHistograms = 14; }
@@ -114,13 +131,18 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   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
   Int_t    fNOriginHistograms;           // Fill only NOriginHistograms of the 14 defined types
   Int_t    fNPrimaryHistograms;          // Fill only NPrimaryHistograms of the 7 defined types
-
+  Bool_t   fFillPileUpHistograms;        // Fill pile-up related histograms
+  
   //Histograms 
-  TH1F * fhClusterCuts[9];               //! control histogram on the different photon selection cuts
+  TH1F * fhClusterCuts[10];              //! control histogram on the different photon selection cuts
   TH2F * fhNCellsE;                      //! number of cells in cluster vs E 
+  TH2F * fhCellsE;                       //! energy of cells in cluster vs E of cluster
   TH2F * fhMaxCellDiffClusterE;          //! Fraction of energy carried by cell with maximum energy
   TH2F * fhTimeE;                        //! time of cluster vs E 
 
@@ -131,8 +153,11 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhEtaPhiPhoton  ;               //! Pseudorapidity vs Phi of identified  photon for transerse momentum > 0.5
   TH2F * fhEtaPhi05Photon  ;             //! Pseudorapidity vs Phi of identified  photon for transerse momentum < 0.5
   
-  //Shower shape
   
+  
+  //Shower shape
+  TH2F * fhNLocMax;                       //! number of maxima in selected clusters
+
   TH2F * fhDispE;                         //! cluster dispersion vs E
   TH2F * fhLam0E;                         //! cluster lambda0 vs  E
   TH2F * fhLam1E;                         //! cluster lambda1 vs  E  
@@ -149,7 +174,6 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhLam0ETMTRD;                    //! cluster lambda0 vs  E, SM covered by TRD, cut on Track Matching residual
   TH2F * fhLam1ETMTRD;                    //! cluster lambda1 vs  E, SM covered by TRD, cut on Track Matching residual 
   
-  
   TH2F * fhNCellsLam0LowE;                //! number of cells in cluster vs lambda0
   TH2F * fhNCellsLam1LowE;                //! number of cells in cluster vs lambda1
   TH2F * fhNCellsDispLowE;                //! number of cells in cluster vs dispersion
@@ -168,6 +192,19 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhDispLam1LowE;                  //! cluster disp vs lambda1, E<2
   TH2F * fhDispLam1HighE;                 //! cluster disp vs lambda1, E>2
     
+  TH2F * fhDispEtaE ;                     //! shower dispersion in eta direction
+  TH2F * fhDispPhiE ;                     //! shower dispersion in phi direction
+  TH2F * fhSumEtaE ;                      //! shower dispersion in eta direction
+  TH2F * fhSumPhiE ;                      //! shower dispersion in phi direction
+  TH2F * fhSumEtaPhiE ;                   //! shower dispersion in eta and phi direction
+  TH2F * fhDispEtaPhiDiffE ;              //! shower dispersion eta - phi
+  TH2F * fhSphericityE ;                  //! shower sphericity in eta vs phi
+  TH2F * fhDispSumEtaDiffE ;              //! difference of 2 eta dispersions
+  TH2F * fhDispSumPhiDiffE ;              //! difference of 2 phi dispersions
+  TH2F * fhDispEtaDispPhi[7] ;            //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
+  TH2F * fhLambda0DispEta[7] ;            //! shower shape correlation l0 vs disp eta
+  TH2F * fhLambda0DispPhi[7] ;            //! shower shape correlation l0 vs disp phi
+  
   //Fill MC dependent histograms, Origin of this cluster is ...
 
   TH2F * fhMCDeltaE[14]  ;                      //! MC-Reco E distribution coming from MC particle     
@@ -209,6 +246,15 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhMCNCellsE[6];                        //! NCells per cluster vs energy
   TH2F * fhMCMaxCellDiffClusterE[6];            //! Fraction of energy carried by cell with maximum energy
 
+  TH2F * fhMCEDispEta[6] ;                      //! shower dispersion in eta direction
+  TH2F * fhMCEDispPhi[6] ;                      //! shower dispersion in phi direction
+  TH2F * fhMCESumEtaPhi[6] ;                    //! shower dispersion in eta vs phi direction
+  TH2F * fhMCEDispEtaPhiDiff[6] ;               //! shower dispersion in eta -phi direction
+  TH2F * fhMCESphericity[6] ;                   //! shower sphericity, eta vs phi
+  TH2F * fhMCDispEtaDispPhi[7][6] ;             //! shower dispersion in eta direction vs phi direction for 5 E bins [0-2],[2-4],[4-6],[6-10],[> 10]
+  TH2F * fhMCLambda0DispEta[7][6] ;             //! shower shape correlation l0 vs disp eta
+  TH2F * fhMCLambda0DispPhi[7][6] ;             //! shower shape correlation l0 vs disp phi
+
   //Embedding
   TH2F * fhEmbeddedSignalFractionEnergy ;       //! Fraction of photon energy of embedded signal vs cluster energy
   
@@ -223,38 +269,56 @@ class AliAnaPhoton : public AliAnaCaloTrackCorrBaseClass {
   TH2F * fhEmbedPi0ELambda0FullBkg ;            //!  Lambda0 vs E for embedded photons with less than 10% of the cluster energy
   
   // Track Matching
-  TH2F * fhTrackMatchedDEta           ;         //! Eta distance between track and cluster vs cluster E, after photon cuts
-  TH2F * fhTrackMatchedDPhi           ;         //! Phi distance between track and cluster vs cluster E, after photon cuts
-  TH2F * fhTrackMatchedDEtaDPhi       ;         //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after photon cuts
-  TH2F * fhTrackMatchedDEtaNoCut      ;         //! Eta distance between track and cluster vs cluster E
-  TH2F * fhTrackMatchedDPhiNoCut      ;         //! Phi distance between track and cluster vs cluster E
-  TH2F * fhTrackMatchedDEtaDPhiNoCut  ;         //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV
-  
-  TH2F * fhTrackMatchedDEtaTRD        ;         //! Eta distance between track and cluster vs cluster E, after photon cuts, behind TRD
-  TH2F * fhTrackMatchedDPhiTRD        ;         //! Phi distance between track and cluster vs cluster E, after photon cuts, behind TRD
-  TH2F * fhTrackMatchedDEtaTRDNoCut   ;         //! Eta distance between track and cluster vs cluster E, behind TRD
-  TH2F * fhTrackMatchedDPhiTRDNoCut   ;         //! Phi distance between track and cluster vs cluster E, behind TRD
-  
-  TH2F * fhTrackMatchedDEtaMCOverlap  ;         //! Eta distance between track and cluster vs cluster E, several particle overlap
-  TH2F * fhTrackMatchedDPhiMCOverlap  ;         //! Phi distance between track and cluster vs cluster E, several particle overlap
-  TH2F * fhTrackMatchedDEtaMCNoOverlap;         //! Eta distance between track and cluster vs cluster E, not other particle overlap
-  TH2F * fhTrackMatchedDPhiMCNoOverlap;         //! Phi distance between track and cluster vs cluster E, not other particle overlap
-  TH2F * fhTrackMatchedDEtaMCConversion;        //! Eta distance between track and cluster vs cluster E, originated in conversion
-  TH2F * fhTrackMatchedDPhiMCConversion;        //! Phi distance between track and cluster vs cluster E, originated in conversion
-  
-  TH2F * fhTrackMatchedMCParticle;              //! Trace origin of matched particle
-  TH2F * fhTrackMatchedMCParticleNoCut;         //! Trace origin of matched particle
-  TH2F * fhdEdx;                                //! matched track dEdx vs cluster E, after photon cuts 
-  TH2F * fhEOverP;                              //! matched track E cluster over P track vs cluster E, after dEdx cut, after photon cuts 
-  TH2F * fhdEdxNoCut;                           //! matched track dEdx vs cluster E, after photon cuts 
-  TH2F * fhEOverPNoCut;                         //! matched track E cluster over P track vs cluster E, after dEdx cut 
-  TH2F * fhEOverPTRD;                           //! matched track E cluster over P track vs cluster E, after dEdx cut, after photon cuts, behind TRD 
-  TH2F * fhEOverPTRDNoCut;                      //! matched track E cluster over P track vs cluster E, after dEdx cut, behind TRD 
+  TH2F * fhTrackMatchedDEta[2]           ;      //! Eta distance between track and cluster vs cluster E, after and before photon cuts
+  TH2F * fhTrackMatchedDPhi[2]           ;      //! Phi distance between track and cluster vs cluster E, after and before photon cuts
+  TH2F * fhTrackMatchedDEtaDPhi[2]       ;      //! Eta vs Phi distance between track and cluster, E cluster > 0.5 GeV, after and before photon cuts
+  
+  TH2F * fhTrackMatchedDEtaTRD[2]        ;      //! Eta distance between track and cluster vs cluster E, after and before photon cuts, behind TRD
+  TH2F * fhTrackMatchedDPhiTRD[2]        ;      //! Phi distance between track and cluster vs cluster E, after and before photon cuts, behind TRD
+  
+  TH2F * fhTrackMatchedDEtaMCOverlap[2]  ;      //! Eta distance between track and cluster vs cluster E, several particle overlap, after and before photon cuts 
+  TH2F * fhTrackMatchedDPhiMCOverlap[2]  ;      //! Phi distance between track and cluster vs cluster E, several particle overlap, after and before photon cuts 
+  TH2F * fhTrackMatchedDEtaMCNoOverlap[2];      //! Eta distance between track and cluster vs cluster E, not other particle overlap, after and before photon cuts 
+  TH2F * fhTrackMatchedDPhiMCNoOverlap[2];      //! Phi distance between track and cluster vs cluster E, not other particle overlap, after and before photon cuts 
+  TH2F * fhTrackMatchedDEtaMCConversion[2];     //! Eta distance between track and cluster vs cluster E, originated in conversion, after and before photon cuts 
+  TH2F * fhTrackMatchedDPhiMCConversion[2];     //! Phi distance between track and cluster vs cluster E, originated in conversion, after and before photon cuts 
+  
+  TH2F * fhTrackMatchedMCParticle[2];           //! Trace origin of matched particle
+  TH2F * fhdEdx[2];                             //! matched track dEdx vs cluster E, after and before photon cuts 
+  TH2F * fhEOverP[2];                           //! matched track E cluster over P track vs cluster E, after dEdx cut, after and before photon cuts 
+  TH2F * fhEOverPTRD[2];                        //! matched track E cluster over P track vs cluster E, after dEdx cut, after and before photon cuts, behind TRD 
+
+  // Pile-up
+  TH1F * fhPtPileUp[7];                         //! pT distribution of clusters before any selection
+  TH1F * fhPtChargedPileUp[7];                  //! pT distribution of track matched clusters
+  TH1F * fhPtPhotonPileUp[7];                   //! pT distribution of selected photons
+  TH2F * fhLambda0PileUp[7];                    //! E vs M02 distribution of clusters, before any selection
+  TH2F * fhLambda0ChargedPileUp[7];             //! E vs M02 distribution of clusters, track matched clusters
+  TH2F * fhClusterTimeDiffPileUp[7];            //! E vs Time difference inside cluster, before any selection
+  TH2F * fhClusterTimeDiffChargedPileUp[7];     //! E vs Time difference inside cluster for track matched clusters
+  TH2F * fhClusterTimeDiffPhotonPileUp[7];      //! E vs Time difference inside cluster for selected photons
+  TH2F * fhClusterEFracLongTimePileUp[7];       //! E vs fraction of cluster energy from cells with large time
+  TH2F * fhTimeENoCut;                          //! time of cluster vs E, no cut
+  TH2F * fhTimeESPD;                            //! time of cluster vs E, IsSPDPileUp
+  TH2F * fhTimeESPDMulti;                       //! time of cluster vs E, IsSPDPileUpMulti
+  TH2F * fhTimeNPileUpVertSPD;                  //! time of cluster vs n pile-up vertices from SPD
+  TH2F * fhTimeNPileUpVertTrack;                //! time of cluster vs n pile-up vertices from Tracks
+  TH2F * fhTimeNPileUpVertContributors;         //! time of cluster vs n pile-up vertex from SPD contributors
+  TH2F * fhTimePileUpMainVertexZDistance;       //! time of cluster vs difference of z main vertex and pile-up vertex 
+  TH2F * fhTimePileUpMainVertexZDiamond;        //! time of cluster vs difference of z diamond and pile-up vertex 
+  TH2F * fhClusterMultSPDPileUp[4];             //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, pile up event
+  TH2F * fhClusterMultNoPileUp[4];              //! E max cluster vs event cluster multiplicity, for tmax-tdiff cuts, not pile up event
+  TH2F * fhEtaPhiBC0;                           //! eta/phi of clusters in BC=0
+  TH2F * fhEtaPhiBCPlus;                        //! eta/phi of clusters in BC>0
+  TH2F * fhEtaPhiBCMinus;                       //! eta/phi of clusters in BC<0
+  TH2F * fhEtaPhiBC0PileUpSPD;                  //! eta/phi of clusters in BC=0, SPD pile-up
+  TH2F * fhEtaPhiBCPlusPileUpSPD;               //! eta/phi of clusters in BC>0, SPD pile-up
+  TH2F * fhEtaPhiBCMinusPileUpSPD;              //! eta/phi of clusters in BC<0, SPD pile-up
 
   AliAnaPhoton(              const AliAnaPhoton & g) ; // cpy ctor
   AliAnaPhoton & operator = (const AliAnaPhoton & g) ; // cpy assignment
   
-  ClassDef(AliAnaPhoton,22)
+  ClassDef(AliAnaPhoton,28)
 
 } ;