ROOT logo
#ifndef AliAnalysisTaskTrgContam_h
#define AliAnalysisTaskTrgContam_h

// $Id$

class TH1;
class TH2;
class TObjArray;
class AliESDEvent;
class AliESDtrack;
class AliESDtrackCuts;
class AliVCluster;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskTrgContam : public AliAnalysisTaskSE {
 public:
  AliAnalysisTaskTrgContam(); 
  AliAnalysisTaskTrgContam(const char *name);
  virtual ~AliAnalysisTaskTrgContam() {}

  void                  UserCreateOutputObjects();
  void                  UserExec(Option_t *option);
  void                  Terminate(Option_t *);

  Double_t              GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
  Double_t              GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
  void                  FillClusHists();
  void                  SetExotCut(Double_t c)                 { fExoticCut          = c;       }
  void                  SetGeoName(const char *n)              { fGeoName            = n;       }
  void                  SetPeriod(const char *n)               { fPeriod             = n;       }
  void                  SetTrainMode(Bool_t t)                 { fIsTrain            = t;       }
  void                  SetTrigThresh(Double_t t)              { fTrigThresh         = t;       }
  
 protected:
  TRefArray            *fCaloClusters;            //!pointer to EMCal clusters
  AliESDCaloCells      *fEMCalCells;              //!pointer to EMCal cells
  AliEMCALGeometry     *fGeom;                    // geometry utils
  TString               fGeoName;                 // geometry name (def = EMCAL_FIRSTYEARV1)
  TString               fPeriod;                  // string to the LHC period
  Bool_t                fIsTrain;                 // variable to set train mode
  Double_t              fTrigThresh;              // variable to set the trigger threshold
  Double_t              fExoticCut;               // variable to set the cut on exotic clusters
  
 private:
  AliESDEvent          *fESD;                     //!esd event
  TList                *fOutputList;              //!output list
  TH1F                 *fEvtSel;                  //!evt selection counter: 0=all trg, 1=pv cut 
  TH1F                 *fClusEt;                  //!cluster Et spectrum
  TH1F                 *fClusEtTM;                //!cluster(matched to a track) Et spectrum
  TH1F                 *fClusEtLead;              //!leading trigger cluster Et
  TH1F                 *fClusEtSubLead;           //!sub-leading trigger cluster Et
  TH1F                 *fClusEtLeadTM;            //!leading trigger cluster (TM) Et
  TH1F                 *fClusEtSubLeadTM;         //!subleading trigger cluster (TM) Et
  TH1F                 *fClusEtExotic;            //!exotic trigger clusters Et
  TH1F                 *fClusEtExoticTM;          //!exotic trigger clusters (TM) Et
  TH1F                 *fClusEtSingleExotic;      //!exotic trigger only clusters Et 
  TH1F                 *fCellEnergy;              //!cell energy spectrum (all)
  TH2F                 *fM02Et;                   //!M02xEt for trigger clusters
  TH2F                 *fM02EtTM;                 //!M02xEt for trigger clusters with track matched
  TH2F                 *fM02EtExot;               //!M02xEt for trigger clusters of exotic
  TH2F                 *fM02EtExotTM;             //!M02xEt for trigger TM clusters of exotic
   
  AliAnalysisTaskTrgContam(const AliAnalysisTaskTrgContam&); // not implemented
  AliAnalysisTaskTrgContam& operator=(const AliAnalysisTaskTrgContam&); // not implemented
  
  ClassDef(AliAnalysisTaskTrgContam, 1); // Trigger contamination class
};
#endif
 AliAnalysisTaskTrgContam.h:1
 AliAnalysisTaskTrgContam.h:2
 AliAnalysisTaskTrgContam.h:3
 AliAnalysisTaskTrgContam.h:4
 AliAnalysisTaskTrgContam.h:5
 AliAnalysisTaskTrgContam.h:6
 AliAnalysisTaskTrgContam.h:7
 AliAnalysisTaskTrgContam.h:8
 AliAnalysisTaskTrgContam.h:9
 AliAnalysisTaskTrgContam.h:10
 AliAnalysisTaskTrgContam.h:11
 AliAnalysisTaskTrgContam.h:12
 AliAnalysisTaskTrgContam.h:13
 AliAnalysisTaskTrgContam.h:14
 AliAnalysisTaskTrgContam.h:15
 AliAnalysisTaskTrgContam.h:16
 AliAnalysisTaskTrgContam.h:17
 AliAnalysisTaskTrgContam.h:18
 AliAnalysisTaskTrgContam.h:19
 AliAnalysisTaskTrgContam.h:20
 AliAnalysisTaskTrgContam.h:21
 AliAnalysisTaskTrgContam.h:22
 AliAnalysisTaskTrgContam.h:23
 AliAnalysisTaskTrgContam.h:24
 AliAnalysisTaskTrgContam.h:25
 AliAnalysisTaskTrgContam.h:26
 AliAnalysisTaskTrgContam.h:27
 AliAnalysisTaskTrgContam.h:28
 AliAnalysisTaskTrgContam.h:29
 AliAnalysisTaskTrgContam.h:30
 AliAnalysisTaskTrgContam.h:31
 AliAnalysisTaskTrgContam.h:32
 AliAnalysisTaskTrgContam.h:33
 AliAnalysisTaskTrgContam.h:34
 AliAnalysisTaskTrgContam.h:35
 AliAnalysisTaskTrgContam.h:36
 AliAnalysisTaskTrgContam.h:37
 AliAnalysisTaskTrgContam.h:38
 AliAnalysisTaskTrgContam.h:39
 AliAnalysisTaskTrgContam.h:40
 AliAnalysisTaskTrgContam.h:41
 AliAnalysisTaskTrgContam.h:42
 AliAnalysisTaskTrgContam.h:43
 AliAnalysisTaskTrgContam.h:44
 AliAnalysisTaskTrgContam.h:45
 AliAnalysisTaskTrgContam.h:46
 AliAnalysisTaskTrgContam.h:47
 AliAnalysisTaskTrgContam.h:48
 AliAnalysisTaskTrgContam.h:49
 AliAnalysisTaskTrgContam.h:50
 AliAnalysisTaskTrgContam.h:51
 AliAnalysisTaskTrgContam.h:52
 AliAnalysisTaskTrgContam.h:53
 AliAnalysisTaskTrgContam.h:54
 AliAnalysisTaskTrgContam.h:55
 AliAnalysisTaskTrgContam.h:56
 AliAnalysisTaskTrgContam.h:57
 AliAnalysisTaskTrgContam.h:58
 AliAnalysisTaskTrgContam.h:59
 AliAnalysisTaskTrgContam.h:60
 AliAnalysisTaskTrgContam.h:61
 AliAnalysisTaskTrgContam.h:62
 AliAnalysisTaskTrgContam.h:63
 AliAnalysisTaskTrgContam.h:64
 AliAnalysisTaskTrgContam.h:65
 AliAnalysisTaskTrgContam.h:66
 AliAnalysisTaskTrgContam.h:67
 AliAnalysisTaskTrgContam.h:68
 AliAnalysisTaskTrgContam.h:69