ROOT logo
#ifndef ALIANALYSISTASKSATR_H
#define ALIANALYSISTASKSATR_H

// $Id$

class TH1F;
class TH2F;
class TH1I;
class TH2I;
class TList;
class AliCaloCalibPedestal;
class AliAnalysisTaskEMCALClusterizeFast;
class AliEMCALGeometry;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskSATR : public AliAnalysisTaskSE {
public:
  AliAnalysisTaskSATR();
  AliAnalysisTaskSATR(const char *name);
  virtual ~AliAnalysisTaskSATR();
  
  virtual void     UserCreateOutputObjects();
  virtual void     UserExec(Option_t *option);
  virtual void     Terminate(Option_t *);
  virtual void     Init();
  
  Bool_t                  GetCheckDeadClusters()                                      const { return fCheckDeadClusters;                        }
  AliCaloCalibPedestal*   GetPedestal()                                               const { return fPedestal;                                 }
  Bool_t                  GetTimeCutOn()                                              const { return fTimeCutOn;                                }
  
  void                    SetCheckDeadClusters(Bool_t c)                                    { fCheckDeadClusters = c;                           }
  void                    SetPedestal(AliCaloCalibPedestal *pds)                            { fPedestal = pds;                                  }
  void                    SetCaloClustersName(TString name)                                 { fCaloClustersName = name;                         }
  void                    SetTriggerClustersName(TString name)                              { fTriggerClustersName = name;                      }
  void                    SetTimeCutOn(Bool_t yes)                                          { fTimeCutOn = yes;                                 }
  void                    SetCutL0Amp(Float_t min = -1, Float_t max = 1000)                 { fMinCutL0Amp = min; fMaxCutL0Amp = max;           }
  void                    SetCutClusEnergy(Float_t min = -1, Float_t max = 100)             { fMinCutClusEnergy = min; fMaxCutClusEnergy = max; }
  void                    SetMinDistanceFromBadTower(Float_t d)                             { fMinDistanceFromBadTower = d;                     }
  void                    SetClusterizer(AliAnalysisTaskEMCALClusterizeFast *c)             { fClusterizer = c;                                 }
  void                    SetTriggerClusterizer(AliAnalysisTaskEMCALClusterizeFast *c)      { fTriggerClusterizer = c;                          }
  void                    SetLoadPed(Bool_t yes)                                            { fLoadPed = yes;                                   }
  void                    SetOCDBPath(const TString &path)                                  { fOCDBpath = path;                                 }
  void                    SetL0TimeCut(Int_t min, Int_t max)                                { fMinL0Time = min; fMaxL0Time = max;               }
  void                    SetClusTimeCut(Float_t min, Float_t max)                          { fMinClusTime = min; fMaxClusTime = max;           }
  
 protected:
  AliVCluster*                           GetClusterFromId(TClonesArray *caloClusters, Int_t id);

  Float_t                                fL0Calib                                    ; // L0 amplitude calibration  
  TString                                fCaloClustersName                           ; // Calo cluster collection name
  TString                                fTriggerClustersName                        ; // Trigger cluster collection name
  Float_t                                fMinCutL0Amp                                ; // Min L0 amplitude
  Float_t                                fMaxCutL0Amp                                ; // Max L0 amplitude
  Float_t                                fMinCutClusEnergy                           ; // Min cluster energy
  Float_t                                fMaxCutClusEnergy                           ; // Max cluster energy
  Bool_t                                 fTimeCutOn                                  ; // True = time cut on
  Int_t                                  fMinL0Time                                  ; // Min L0 time
  Int_t                                  fMaxL0Time                                  ; // Max L0 time
  Float_t                                fMinClusTime                                ; // Min clus time
  Float_t                                fMaxClusTime                                ; // Max clus time
  Bool_t                                 fCheckDeadClusters                          ; // True = check for dead clusters
  AliCaloCalibPedestal                  *fPedestal                                   ; // Calo calib pedestal object
  Bool_t                                 fLoadPed                                    ; // True = load pedesta
  TString                                fOCDBpath                                   ; // Path with OCDB location
  Float_t                                fMinDistanceFromBadTower                    ; // Min distance from bad tower
  AliAnalysisTaskEMCALClusterizeFast    *fClusterizer                                ; // Clusterizer
  AliAnalysisTaskEMCALClusterizeFast    *fTriggerClusterizer                         ; // Trigger clusterizer

  AliEMCALGeometry                      *fGeom                                       ; //!Pointer to emcal geometry object
  Int_t                                  fRun                                        ; //!Current run
  TList                                 *fOutput                                     ; //!Output list
  TH1F                                  *fHistEclus                                  ; //!Energy spectrum of clusters
  TH1F                                  *fHistEmaxClus                               ; //!Energy of max cluster per event
  TH2I                                  *fHistEtavsPhiMaxClus                        ; //!Position (eta-phi) of max cluster per event
  TH2F                                  *fHistEtavsEmaxClus                          ; //!Eta vs. energy of max cluster per event
  TH2F                                  *fHistPhivsEmaxClus                          ; //!Phi vs. energy of max cluster per event
  TH2F                                  *fHistTOFvsEclus                             ; //!TOF vs. energy of clusters
  TH2F                                  *fHistTOFvsEclusC                            ; //!Output histogram
  TH2F                                  *fHistNcellsvsEclus                          ; //!Output histogram
  
  TH1F                                  *fHistAmpTClus                               ; //!Output histogram
  TH1F                                  *fHistAmpMaxTClus                            ; //!Output histogram
  TH2I                                  *fHistEtavsPhiMaxTClus                       ; //!Output histogram
  
  TH2F                                  *fHistEmaxClusvsAmpMaxTClus                  ; //!Output histogram
  TH2F                                  *fHistEmaxClusvsAmpMatchedTClus              ; //!Output histogram
  TH1F                                  *fHistEmaxClusNotMatchingTClus               ; //!Output histogram
  TH2I                                  *fHistEtavsPhiMaxClusNotMatchingTClus        ; //!Output histogram
  TH2F                                  *fHistEmatchedClusvsAmpMaxTClus              ; //!Output histogram
  TH1F                                  *fHistAmpMaxTClusNotMatchingClus             ; //!Output histogram
  TH2I                                  *fHistEtavsPhiMaxTClusNotMatchingClus        ; //!Output histogram
  TH2I                                  *fHistIdxMaxClusvsIdxMaxTClus                ; //!Output histogram
  TH2I                                  *fHistPhiMaxClusvsPhiMaxTClus                ; //!Output histogram
  TH2I                                  *fHistEtaMaxClusvsEtaMaxTClus                ; //!Output histogram
  TH2F                                  *fHistTOFmaxClusvsTimeMaxTClus               ; //!Output histogram
  TH2F                                  *fHistEmatchedClusvsAmpMatchedTClus          ; //!Output histogram
  TH1F                                  *fHistEmatchedClus                           ; //!Output histogram
  TH1F                                  *fHistEmaxMatchedClus                        ; //!Output histogram
	
  TH1F                                  *fHistAmpL1TimeSum                           ; //!Output histogram
  TH1F                                  *fHistAmpMaxL1TimeSum                        ; //!Output histogram
  TH2F                                  *fHistAmpMaxL1TimeSumVScent                  ; //!Output histogram
  
  TH2F                                  *fHistAmpFastORvsAmpL1TimeSum                ; //!Output histogram
  
  TH1F                                  *fHistAmpFastOR                              ; //!Output histogram
  TH1F                                  *fHistAmpMaxFastOR                           ; //!Output histogram
  TH1F                                  *fHistTimeFastOR                             ; //!Output histogram
  TH2I                                  *fHistEtavsPhiFastOR                         ; //!Output histogram
  TH2I                                  *fHistEtavsPhiMaxFastOR                      ; //!Output histogram
  TH1F                                  *fHistTimeDispFastOR                         ; //!Output histogram
  TH2F                                  *fHistTimevsL0TimeFastOR                     ; //!Output histogram
  TH1I                                  *fHistNtimesFastOR                           ; //!Output histogram

  TH1F                                  *fHistEcells                                 ; //!Output histogram
  TH1F                                  *fHistEmaxCell                               ; //!Output histogram
  TH2F                                  *fHistTOFvsEcells                            ; //!Output histogram
  TH2F                                  *fHistTOFvsEcellsC                           ; //!Output histogram
  
  TH2F                                  *fHistEmaxCellvsAmpFastOR                    ; //!Output histogram
  
private:
  
  AliAnalysisTaskSATR (const AliAnalysisTaskSATR&);           // not implemented
  AliAnalysisTaskSATR operator=(const AliAnalysisTaskSATR&);  // not implemented
  
  ClassDef(AliAnalysisTaskSATR, 2);
};

#endif

 AliAnalysisTaskSATR.h:1
 AliAnalysisTaskSATR.h:2
 AliAnalysisTaskSATR.h:3
 AliAnalysisTaskSATR.h:4
 AliAnalysisTaskSATR.h:5
 AliAnalysisTaskSATR.h:6
 AliAnalysisTaskSATR.h:7
 AliAnalysisTaskSATR.h:8
 AliAnalysisTaskSATR.h:9
 AliAnalysisTaskSATR.h:10
 AliAnalysisTaskSATR.h:11
 AliAnalysisTaskSATR.h:12
 AliAnalysisTaskSATR.h:13
 AliAnalysisTaskSATR.h:14
 AliAnalysisTaskSATR.h:15
 AliAnalysisTaskSATR.h:16
 AliAnalysisTaskSATR.h:17
 AliAnalysisTaskSATR.h:18
 AliAnalysisTaskSATR.h:19
 AliAnalysisTaskSATR.h:20
 AliAnalysisTaskSATR.h:21
 AliAnalysisTaskSATR.h:22
 AliAnalysisTaskSATR.h:23
 AliAnalysisTaskSATR.h:24
 AliAnalysisTaskSATR.h:25
 AliAnalysisTaskSATR.h:26
 AliAnalysisTaskSATR.h:27
 AliAnalysisTaskSATR.h:28
 AliAnalysisTaskSATR.h:29
 AliAnalysisTaskSATR.h:30
 AliAnalysisTaskSATR.h:31
 AliAnalysisTaskSATR.h:32
 AliAnalysisTaskSATR.h:33
 AliAnalysisTaskSATR.h:34
 AliAnalysisTaskSATR.h:35
 AliAnalysisTaskSATR.h:36
 AliAnalysisTaskSATR.h:37
 AliAnalysisTaskSATR.h:38
 AliAnalysisTaskSATR.h:39
 AliAnalysisTaskSATR.h:40
 AliAnalysisTaskSATR.h:41
 AliAnalysisTaskSATR.h:42
 AliAnalysisTaskSATR.h:43
 AliAnalysisTaskSATR.h:44
 AliAnalysisTaskSATR.h:45
 AliAnalysisTaskSATR.h:46
 AliAnalysisTaskSATR.h:47
 AliAnalysisTaskSATR.h:48
 AliAnalysisTaskSATR.h:49
 AliAnalysisTaskSATR.h:50
 AliAnalysisTaskSATR.h:51
 AliAnalysisTaskSATR.h:52
 AliAnalysisTaskSATR.h:53
 AliAnalysisTaskSATR.h:54
 AliAnalysisTaskSATR.h:55
 AliAnalysisTaskSATR.h:56
 AliAnalysisTaskSATR.h:57
 AliAnalysisTaskSATR.h:58
 AliAnalysisTaskSATR.h:59
 AliAnalysisTaskSATR.h:60
 AliAnalysisTaskSATR.h:61
 AliAnalysisTaskSATR.h:62
 AliAnalysisTaskSATR.h:63
 AliAnalysisTaskSATR.h:64
 AliAnalysisTaskSATR.h:65
 AliAnalysisTaskSATR.h:66
 AliAnalysisTaskSATR.h:67
 AliAnalysisTaskSATR.h:68
 AliAnalysisTaskSATR.h:69
 AliAnalysisTaskSATR.h:70
 AliAnalysisTaskSATR.h:71
 AliAnalysisTaskSATR.h:72
 AliAnalysisTaskSATR.h:73
 AliAnalysisTaskSATR.h:74
 AliAnalysisTaskSATR.h:75
 AliAnalysisTaskSATR.h:76
 AliAnalysisTaskSATR.h:77
 AliAnalysisTaskSATR.h:78
 AliAnalysisTaskSATR.h:79
 AliAnalysisTaskSATR.h:80
 AliAnalysisTaskSATR.h:81
 AliAnalysisTaskSATR.h:82
 AliAnalysisTaskSATR.h:83
 AliAnalysisTaskSATR.h:84
 AliAnalysisTaskSATR.h:85
 AliAnalysisTaskSATR.h:86
 AliAnalysisTaskSATR.h:87
 AliAnalysisTaskSATR.h:88
 AliAnalysisTaskSATR.h:89
 AliAnalysisTaskSATR.h:90
 AliAnalysisTaskSATR.h:91
 AliAnalysisTaskSATR.h:92
 AliAnalysisTaskSATR.h:93
 AliAnalysisTaskSATR.h:94
 AliAnalysisTaskSATR.h:95
 AliAnalysisTaskSATR.h:96
 AliAnalysisTaskSATR.h:97
 AliAnalysisTaskSATR.h:98
 AliAnalysisTaskSATR.h:99
 AliAnalysisTaskSATR.h:100
 AliAnalysisTaskSATR.h:101
 AliAnalysisTaskSATR.h:102
 AliAnalysisTaskSATR.h:103
 AliAnalysisTaskSATR.h:104
 AliAnalysisTaskSATR.h:105
 AliAnalysisTaskSATR.h:106
 AliAnalysisTaskSATR.h:107
 AliAnalysisTaskSATR.h:108
 AliAnalysisTaskSATR.h:109
 AliAnalysisTaskSATR.h:110
 AliAnalysisTaskSATR.h:111
 AliAnalysisTaskSATR.h:112
 AliAnalysisTaskSATR.h:113
 AliAnalysisTaskSATR.h:114
 AliAnalysisTaskSATR.h:115
 AliAnalysisTaskSATR.h:116
 AliAnalysisTaskSATR.h:117
 AliAnalysisTaskSATR.h:118
 AliAnalysisTaskSATR.h:119
 AliAnalysisTaskSATR.h:120
 AliAnalysisTaskSATR.h:121
 AliAnalysisTaskSATR.h:122
 AliAnalysisTaskSATR.h:123
 AliAnalysisTaskSATR.h:124
 AliAnalysisTaskSATR.h:125
 AliAnalysisTaskSATR.h:126
 AliAnalysisTaskSATR.h:127
 AliAnalysisTaskSATR.h:128
 AliAnalysisTaskSATR.h:129
 AliAnalysisTaskSATR.h:130
 AliAnalysisTaskSATR.h:131
 AliAnalysisTaskSATR.h:132