]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/CaloTrackCorrelations/AliAnaEMCALTriggerClusters.h
D_s systematic uncertainties in 0-10% and 20-50% (Anastasia)
[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   TLorentzVector fMomentum ;                          //! Cluster momentum
71   
72   // Histograms
73   
74   TH1F * fhE               ;                          //! Raw clusters E
75   TH1F * fhESelected       ;                          //! Selected custers E
76   TH2F * fhEtaPhi          ;                          //! Raw Pseudorapidity vs Phi of clusters for E > 0.5
77   TH2F * fhEtaPhiSelected  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
78   TH2F * fhEtaPhiEMCALBC0  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
79   TH2F * fhEtaPhiEMCALBC1  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
80   TH2F * fhEtaPhiEMCALBCN  ;                          //! Pseudorapidity vs Phi of clusters for E > 0.5
81
82   TH2F * fhEtaPhiTriggerEMCALBC[11] ;                 //! Pseudorapidity vs Phi of clusters for E > 2
83   TH2F * fhTimeTriggerEMCALBC  [11] ;                 //! Time distribution of clusters, when trigger is in a given BC
84   TH2F * fhTimeTriggerEMCALBCPileUpSPD[11];           //! Time distribution of clusters, when trigger is in a given BC, tagged as pile-up SPD
85
86   TH2F * fhEtaPhiTriggerEMCALBCUM[11] ;               //! Pseudorapidity vs Phi of clusters for E > 2, not matched to trigger
87   TH2F * fhTimeTriggerEMCALBCUM  [11] ;               //! Time distribution of clusters, when trigger is in a given BC, not matched to trigger
88   
89   TH2F * fhEtaPhiTriggerEMCALBCCluster  [11] ;        //! Pseudorapidity vs Phi of trigger clusters
90   TH2F * fhTimeTriggerEMCALBCCluster ;                //! Time distribution of clusters, when trigger cluster is in a given BC
91   TH2F * fhEtaPhiTriggerEMCALBCUMCluster[11] ;        //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger
92   TH2F * fhTimeTriggerEMCALBCUMCluster ;              //! Time distribution of highest energy cluster in event, when trigger is in a given BC, not
93   
94   TH2F * fhEtaPhiTriggerEMCALBCClusterOverTh     ;    //! Pseudorapidity vs Phi of trigger clusters, over nominal threshold
95   TH2F * fhEtaPhiTriggerEMCALBCUMClusterOverTh   ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, over nominal threshold
96   TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh1   ;    //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
97   TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh1 ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, 2 GeV below nominal threshold
98   TH2F * fhEtaPhiTriggerEMCALBCClusterBelowTh2   ;    //! Pseudorapidity vs Phi of trigger clusters, 1 GeV below nominal threshold
99   TH2F * fhEtaPhiTriggerEMCALBCUMClusterBelowTh2 ;    //! Pseudorapidity vs Phi of highest E cluster  in event, not matched to trigger, 2 GeV below nominal threshold
100
101   TH2F * fhEtaPhiTriggerEMCALBCExotic            ;    //! Pseudorapidity vs Phi of trigger exotic clusters
102   TH2F * fhTimeTriggerEMCALBCExotic              ;    //! Time distribution of clusters, when trigger exotic cluster
103   TH2F * fhEtaPhiTriggerEMCALBCUMExotic          ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
104   TH2F * fhTimeTriggerEMCALBCUMExotic            ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
105
106   TH2F * fhEtaPhiTriggerEMCALBCBad               ;    //! Pseudorapidity vs Phi of trigger exotic clusters
107   TH2F * fhTimeTriggerEMCALBCBad                 ;    //! Time distribution of clusters, when trigger exotic
108   TH2F * fhEtaPhiTriggerEMCALBCUMBad             ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
109   TH2F * fhTimeTriggerEMCALBCUMBad               ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
110   
111   TH2F * fhEtaPhiTriggerEMCALBCBadExotic         ;    //! Pseudorapidity vs Phi of trigger exotic and bad clusters
112   TH2F * fhTimeTriggerEMCALBCBadExotic           ;    //! Time distribution of clusters, when trigger exotic and bad cluster
113   TH2F * fhEtaPhiTriggerEMCALBCUMBadExotic       ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
114   TH2F * fhTimeTriggerEMCALBCUMBadExotic         ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
115   
116   TH2F * fhEtaPhiTriggerEMCALBCExoticCluster     ;    //! Pseudorapidity vs Phi of trigger exotic clusters
117   TH2F * fhTimeTriggerEMCALBCExoticCluster       ;    //! Time distribution of clusters, when trigger exotic cluster
118   TH2F * fhEtaPhiTriggerEMCALBCUMExoticCluster   ;    //! Pseudorapidity vs Phi of highest E exotic cluster  in event, not matched to trigger
119   TH2F * fhTimeTriggerEMCALBCUMExoticCluster     ;    //! Time distribution of highest energy exotic cluster in event, not matched to trigger
120   
121   TH2F * fhEtaPhiTriggerEMCALBCBadCluster        ;    //! Pseudorapidity vs Phi of trigger bad clusters
122   TH2F * fhTimeTriggerEMCALBCBadCluster          ;    //! Time distribution of clusters, when trigger bad cluster is in a given BC
123   TH2F * fhEtaPhiTriggerEMCALBCUMBadCluster      ;    //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger
124   TH2F * fhTimeTriggerEMCALBCUMBadCluster        ;    //! Time distribution of highest energy bad cluster in event, when trigger is in a given BC, not
125
126   TH2F * fhEtaPhiTriggerEMCALBCBadExoticCluster  ;    //! Pseudorapidity vs Phi of trigger exotic and bad clusters
127   TH2F * fhTimeTriggerEMCALBCBadExoticCluster    ;    //! Time distribution of clusters, when trigger exotic and bad cluster
128   TH2F * fhEtaPhiTriggerEMCALBCUMBadExoticCluster;    //! Pseudorapidity vs Phi of highest E exotic and bad cluster in event, not matched to trigger
129   TH2F * fhTimeTriggerEMCALBCUMBadExoticCluster  ;    //! Time distribution of highest energy exotic and bad cluster in event, not matched to trigger
130   
131   TH2F * fhTimeTriggerEMCALBCBadMaxCell          ;    //! Time distribution of trigger clusters, when trigger bad max cell
132   TH2F * fhTimeTriggerEMCALBCUMBadMaxCell        ;    //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found
133   TH2F * fhTimeTriggerEMCALBCBadMaxCellExotic    ;    //! Time distribution of trigger clusters, when trigger exotic cluster with bad max cell
134   TH2F * fhTimeTriggerEMCALBCUMBadMaxCellExotic  ;    //! Time distribution of highest energy exotic with bad max cell cluster in event, when trigger is not found
135   
136   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchOpenTimeCluster ;  //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched open time trigger
137   TH2F * fhTimeTriggerEMCALBCUMReMatchOpenTimeCluster   ;  //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open time trigger
138   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchCheckNeighCluster; //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched with neigbour patchs
139   TH2F * fhTimeTriggerEMCALBCUMReMatchCheckNeighCluster ;  //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched with neigbour patchs
140   TH2F * fhEtaPhiTriggerEMCALBCUMReMatchBothCluster;  //! Pseudorapidity vs Phi of highest E bad cluster  in event, not matched to trigger, rematched open both
141   TH2F * fhTimeTriggerEMCALBCUMReMatchBothCluster ;   //! Time distribution of highest energy bad max cell cluster in event, when trigger is not found, rematched open both
142   
143   TH2F * fhTimeTriggerEMCALBC0UMReMatchOpenTime   ;   //! Time distribution of clusters, not matched to trigger, rematched open time trigger
144   TH2F * fhTimeTriggerEMCALBC0UMReMatchCheckNeigh ;   //! Time distribution of clusters, not matched to trigger, rematched with neighbour patchs
145   TH2F * fhTimeTriggerEMCALBC0UMReMatchBoth       ;   //! Time distribution of clusters, not matched to trigger, rematched open both
146   
147   TH2F * fhEtaPhiNoTrigger ;                          //! Pseudorapidity vs Phi of highest E exotic cluster  in event, no trigger at all
148   TH2F * fhTimeNoTrigger   ;                          //! Time distribution of highest energy exotic cluster in event, no trigger at all
149   
150   TH2F * fhEtaPhiSelectedEMCALBC0  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
151   TH2F * fhEtaPhiSelectedEMCALBC1  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
152   TH2F * fhEtaPhiSelectedEMCALBCN  ;                  //! Pseudorapidity vs Phi of identified  photon for E > 0.5
153   TH2F * fhEtaPhiSelectedTriggerEMCALBC[11];          //! Pseudorapidity vs Phi of photons for E > 0.5
154   TH2F * fhTimeSelectedTriggerEMCALBC  [11];          //! Time distribution of photons, when trigger is in a given BC
155   TH2F * fhTimeSelectedTriggerEMCALBCPileUpSPD[11] ;  //! Time distribution of photons, when trigger is in a given BC, tagged as pile-up SPD
156   TH2F * fhEtaPhiSelectedTriggerEMCALBCUM[11];        //! Pseudorapidity vs Phi of photons for E > 2, not matched to trigger
157   TH2F * fhTimeSelectedTriggerEMCALBCUM  [11];        //! Time distribution of photons, when trigger is in a given BC, not matched to trigger
158
159   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchOpenTime   ;  //! Time distribution of photons in event, when trigger is not found, rematched open time trigger
160   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchCheckNeigh ;  //! Time distribution of photons in event, when trigger is not found, rematched with neigbour patchs
161   TH2F * fhTimeSelectedTriggerEMCALBC0UMReMatchBoth       ;  //! Time distribution of photons in event, when trigger is not found, rematched open both
162   
163   AliAnaEMCALTriggerClusters(              const AliAnaEMCALTriggerClusters & g) ; // cpy ctor
164   AliAnaEMCALTriggerClusters & operator = (const AliAnaEMCALTriggerClusters & g) ; // cpy assignment
165   
166   ClassDef(AliAnaEMCALTriggerClusters,2)
167
168 } ;
169  
170 #endif//ALIANAEMCALTRIGGERCLUSTERS_H
171
172
173