]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaEMCALTriggerClusters.h
shift azimuthal difference in the same way everywhere
[u/mrichter/AliRoot.git] / PWGGA / CaloTrackCorrelations / AliAnaEMCALTriggerClusters.h
1 #ifndef ALIANAEMCALTRIGGERCLUSTERS_H
2 #define ALIANAEMCALTRIGGERCLUSTERS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice     */
5
6 //_________________________________________________________________________
7 //
8 // Class for study of EMCAL trigger behaviour
9 //
10 // -- Author: Gustavo Conesa (CNRS-LPSC-Grenoble)
11 //
12
13 // --- ROOT system ---
14 class TH2F ;
15 class TH1F;
16 class TString ;
17 class TObjString;
18 class TList ;
19
20 // --- ANALYSIS system ---
21 #include "AliAnaCaloTrackCorrBaseClass.h"
22
23 class AliAnaEMCALTriggerClusters : public AliAnaCaloTrackCorrBaseClass {
24
25  public: 
26            AliAnaEMCALTriggerClusters() ;     // default ctor
27   virtual ~AliAnaEMCALTriggerClusters() { ; } // virtual dtor
28         
29   //---------------------------------------
30   // General analysis frame methods
31   //---------------------------------------
32   
33   TObjString * GetAnalysisCuts();
34   
35   TList      * GetCreateOutputObjects();
36   
37   void         Init();
38
39   void         InitParameters();
40
41   void         MakeAnalysisFillHistograms() ; 
42   
43   void         Print(const Option_t * opt)const;
44   
45   void         FillBadTriggerEventHistogram();
46   
47   void         FillRawClusterTriggerBCHistograms(Int_t idcalo,       Float_t ecluster,   Float_t tofcluster,
48                                                  Float_t etacluster, Float_t phicluster);
49   
50   // Analysis parameters setters getters
51
52   void         SetNCellCut(Int_t n)                { fNCellsCut = n               ; }
53   Double_t     GetNCellCut()                 const { return fNCellsCut            ; }
54   
55   void         SetM02(Float_t min, Float_t max)    { fMinM02 = min; fMaxM02 = max ; }
56   Float_t      GetM02Min()                   const { return fMinM02               ; }
57   Float_t      GetM02Max()                   const { return fMaxM02               ; }
58   
59   Bool_t       IsTrackMatchRejectionOn()     const { return fRejectTrackMatch     ; }
60   void         SwitchOnTrackMatchRejection()       { fRejectTrackMatch = kTRUE    ; }
61   void         SwitchOffTrackMatchRejection()      { fRejectTrackMatch = kFALSE   ; }
62   
63   private:
64  
65   Bool_t  fRejectTrackMatch ;                         // Reject clusters which have an associated TPC track
66   Int_t   fNCellsCut ;                                // Accept for the analysis clusters with more than fNCellsCut cells
67   Float_t fMinM02  ;                                  // Remove clusters with large M02
68   Float_t fMaxM02  ;                                  // Remove clusters with small M02
69   
70   // Histograms
71   
72   TH1F * fhE               ;                          //! Raw clusters E
73   TH1F * fhESelected       ;                          //! Selected custers E
74   TH2F * fhEtaPhi          ;                          //! Raw Pseudorapidity vs Phi of clusters for E > 0.5
75   TH2F * fhEtaPhiSelected  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
76   TH2F * fhEtaPhiEMCALBC0  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
77   TH2F * fhEtaPhiEMCALBC1  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
78   TH2F * fhEtaPhiEMCALBCN  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
79
80   TH2F * fhEtaPhiTriggerEMCALBC[11] ;                 //! Pseudorapidity vs Phi of clusters for E > 2
81   TH2F * fhTimeTriggerEMCALBC  [11] ;                 //! Time distribution of clusters, when trigger is in a given BC
82   TH2F * fhTimeTriggerEMCALBCPileUpSPD[11];           //! Time distribution of clusters, when trigger is in a given BC, tagged as pile-up SPD
83
84   TH2F * fhEtaPhiTriggerEMCALBCUM[11] ;               //! Pseudorapidity vs Phi of clusters for E > 2, not matched to trigger
85   TH2F * fhTimeTriggerEMCALBCUM  [11] ;               //! Time distribution of clusters, when trigger is in a given BC, not matched to trigger
86   
87   TH2F * fhEtaPhiTriggerEMCALBCCluster  [11] ;        //! Pseudorapidity vs Phi of trigger clusters
88   TH2F * fhTimeTriggerEMCALBCCluster ;                //! Time distribution of clusters, when trigger cluster is in a given BC
89   TH2F * fhEtaPhiTriggerEMCALBCUMCluster[11] ;        //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger
90   TH2F * fhTimeTriggerEMCALBCUMCluster ;              //! Time distribution of highest energy cluster in event, when trigger is in a given BC, not
91   
92   TH2F * fhEtaPhiTriggerEMCALBCClusterOverTh     ;    //! Pseudorapidity vs Phi of trigger clusters, over nominal threshold
93   TH2F * fhEtaPhiTriggerEMCALBCUMClusterOverTh   ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, over nominal threshold
94   TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh1   ;    //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
95   TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh1 ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, 2 GeV below nominal threshold
96   TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2   ;    //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
97   TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2 ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, 2 GeV below nominal threshold
98
99   TH2F * fhEtaPhiTriggerEMCALBCExotic            ;    //! Pseudorapidity vs Phi of trigger exotic clusters
100   TH2F * fhTimeTriggerEMCALBCExotic              ;    //! Time distribution of clusters, when trigger exotic cluster
101   TH2F * fhEtaPhiTriggerEMCALBCUMExotic          ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
102   TH2F * fhTimeTriggerEMCALBCUMExotic            ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
103
104   TH2F * fhEtaPhiTriggerEMCALBCBad               ;    //! Pseudorapidity vs Phi of trigger exotic clusters
105   TH2F * fhTimeTriggerEMCALBCBad                 ;    //! Time distribution of clusters, when trigger exotic
106   TH2F * fhEtaPhiTriggerEMCALBCUMBad             ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
107   TH2F * fhTimeTriggerEMCALBCUMBad               ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
108   
109   TH2F * fhEtaPhiTriggerEMCALBCBadExotic         ;    //! Pseudorapidity vs Phi of trigger exotic and bad clusters
110   TH2F * fhTimeTriggerEMCALBCBadExotic           ;    //! Time distribution of clusters, when trigger exotic and bad cluster
111   TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic       ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
112   TH2F * fhTimeTriggerEMCALBCUMBadExotic         ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
113   
114   TH2F * fhEtaPhiTriggerEMCALBCExoticCluster     ;    //! Pseudorapidity vs Phi of trigger exotic clusters
115   TH2F * fhTimeTriggerEMCALBCExoticCluster       ;    //! Time distribution of clusters, when trigger exotic cluster
116   TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster   ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
117   TH2F * fhTimeTriggerEMCALBCUMExoticCluster     ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
118   
119   TH2F * fhEtaPhiTriggerEMCALBCBadCluster        ;    //! Pseudorapidity vs Phi of trigger bad clusters
120   TH2F * fhTimeTriggerEMCALBCBadCluster          ;    //! Time distribution of clusters, when trigger bad cluster is in a given BC
121   TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster      ;    //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger
122   TH2F * fhTimeTriggerEMCALBCUMBadCluster        ;    //! Time distribution of highest energy bad cluster in event, when trigger is in a given BC, not
123
124   TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster  ;    //! Pseudorapidity vs Phi of trigger exotic and bad clusters
125   TH2F * fhTimeTriggerEMCALBCBadExoticCluster    ;    //! Time distribution of clusters, when trigger exotic and bad cluster
126   TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster;    //! Pseudorapidity vs Phi of highest E exotic and bad cluster in event, not matched to trigger
127   TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster  ;    //! Time distribution of highest energy exotic and bad cluster in event, not matched to trigger
128   
129   TH2F * fhTimeTriggerEMCALBCBadMaxCell          ;    //! Time distribution of trigger clusters, when trigger bad max cell
130   TH2F * fhTimeTriggerEMCALBCUMBadMaxCell        ;    //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found
131   TH2F * fhTimeTriggerEMCALBCBadMaxCellExotic    ;    //! Time distribution of trigger clusters, when trigger exotic cluster with bad max cell
132   TH2F * fhTimeTriggerEMCALBCUMBadMaxCellExotic  ;    //! Time distribution of highest energy exotic with bad max cell cluster in event, when trigger is not found
133   
134   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster ;  //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched open time trigger
135   TH2F * fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster   ;  //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open time trigger
136   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster; //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched with neigbour patchs
137   TH2F * fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster ;  //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched with neigbour patchs
138   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchBothCluster;  //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched open both
139   TH2F * fhTimeTriggerEMCALBCUMReMatchBothCluster ;   //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open both
140   
141   TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime   ;   //! Time distribution of clusters, not matched to trigger, rematched open time trigger
142   TH2F * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh ;   //! Time distribution of clusters, not matched to trigger, rematched with neighbour patchs
143   TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth       ;   //! Time distribution of clusters, not matched to trigger, rematched open both
144   
145   TH2F * fhEtaPhiNoTrigger ;                          //! Pseudorapidity vs Phi of highest E exotic cluster  in event, no trigger at all
146   TH2F * fhTimeNoTrigger   ;                          //! Time distribution of highest energy exotic cluster in event, no trigger at all
147   
148   TH2F * fhEtaPhiSelectedEMCALBC0  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
149   TH2F * fhEtaPhiSelectedEMCALBC1  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
150   TH2F * fhEtaPhiSelectedEMCALBCN  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
151   TH2F * fhEtaPhiSelectedTriggerEMCALBC[11];          //! Pseudorapidity vs Phi of photons for E > 0.5
152   TH2F * fhTimeSelectedTriggerEMCALBC  [11];          //! Time distribution of photons, when trigger is in a given BC
153   TH2F * fhTimeSelectedTriggerEMCALBCPileUpSPD[11] ;  //! Time distribution of photons, when trigger is in a given BC, tagged as pile-up SPD
154   TH2F * fhEtaPhiSelectedTriggerEMCALBCUM[11];        //! Pseudorapidity vs Phi of photons for E > 2, not matched to trigger
155   TH2F * fhTimeSelectedTriggerEMCALBCUM  [11];        //! Time distribution of photons, when trigger is in a given BC, not matched to trigger
156
157   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime   ;  //! Time distribution of photons in event, when trigger is not found, rematched open time trigger
158   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh ;  //! Time distribution of photons in event, when trigger is not found, rematched with neigbour patchs
159   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchBoth       ;  //! Time distribution of photons in event, when trigger is not found, rematched open both
160   
161   AliAnaEMCALTriggerClusters(              const AliAnaEMCALTriggerClusters & g) ; // cpy ctor
162   AliAnaEMCALTriggerClusters & operator = (const AliAnaEMCALTriggerClusters & g) ; // cpy assignment
163   
164   ClassDef(AliAnaEMCALTriggerClusters,1)
165
166 } ;
167  
168 #endif//ALIANAEMCALTRIGGERCLUSTERS_H
169
170
171