]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
including another event counter
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALIsoPhoton.h
1 #ifndef AliAnalysisTaskEMCALIsoPhoton_h
2 #define AliAnalysisTaskEMCALIsoPhoton_h
3
4 // $Id$
5
6 class TH1F;
7 class TH2F;
8 class THnSparse;
9 class TList;
10 class TObjArray;
11 class AliEMCALGeometry;
12 class AliESDCaloCells;
13 class AliESDEvent;
14 class AliESDtrack;
15 class AliESDtrackCuts;
16 class AliVCluster;
17
18 #include "AliAnalysisTaskSE.h"
19
20 class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
21  public:
22   AliAnalysisTaskEMCALIsoPhoton();
23   AliAnalysisTaskEMCALIsoPhoton(const char *name);
24   virtual ~AliAnalysisTaskEMCALIsoPhoton() {}
25
26   void                   UserCreateOutputObjects();
27   void                   UserExec(Option_t *option);
28   void                   Terminate(Option_t *);
29
30   void                   GetCeIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
31   Double_t               GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
32   Double_t               GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
33   void                   GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
34   void                   FillClusHists();
35   void                   SetExotCut(Double_t c)                 { fExoticCut          = c;       }
36   void                   SetGeoName(const char *n)              { fGeoName            = n;       }
37   void                   SetIsoConeR(Double_t r)                { fIsoConeR           = r;       }
38   void                   SetPeriod(const char *n)               { fPeriod             = n;       }
39   void                   SetTriggerBit(const char *tb)          { fTrigBit            = tb;      }
40   void                   SetPrimTrackCuts(AliESDtrackCuts *c)   { fPrTrCuts           = c;       }
41   void                   SetTrainMode(Bool_t t)                 { fIsTrain            = t;       }
42   
43  protected:
44   TRefArray             *fCaloClusters;          //!pointer to EMCal clusters
45   TObjArray             *fSelPrimTracks;         //!pointer to ESD primary tracks
46   TClonesArray          *fTracks;                //!track input array
47   AliESDCaloCells       *fEMCalCells;            //!pointer to EMCal cells
48   AliESDtrackCuts       *fPrTrCuts;              //pointer to hold the prim track cuts
49   AliEMCALGeometry      *fGeom;                  // geometry utils
50   TString                fGeoName;               // geometry name (def = EMCAL_FIRSTYEARV1)
51   TString                fPeriod;                // string to the LHC period
52   TString                fTrigBit;               // string to the trigger bit name
53   Bool_t                 fIsTrain;               // variable to set train mode
54   Double_t               fExoticCut;             // variable to set the cut on exotic clusters
55   Double_t               fIsoConeR;              // variable to set the isolation cone radius
56   Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
57   Double_t               fECut;                  // variable to set the minimum E of a cluster
58   
59  private:
60   AliESDEvent *fESD;      //! ESD object
61   TList       *fOutputList; //! Output list
62   //histograms for events with 1+ track pt>1
63   TH1F        *fEvtSel;                  //!evt selection counter: 0=all trg, 1=pv cut 
64   TH1F        *fNClusEt10;               //!number of clusters w/ Et>10 in the event
65   TH1F        *fPVtxZ;                   //!primary vertex Z before cut
66   TH2F        *fCellAbsIdVsAmpl;         //!cell abs id vs cell amplitude (energy)
67   TH2F        *fNClusHighClusE;          //!total number of clusters vs. highest clus energy in the event
68   THnSparse   *fHnOutput;                //!Output matrix with 7 dimensions
69
70   AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
71   AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
72   
73   ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons
74 };
75 #endif