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