]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
including setter to enable debugging printouts
[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 class AliMCEvent;
18 class AliStack;
19 class TParticle;
20
21 #include "AliAnalysisTaskSE.h"
22
23 class AliAnalysisTaskEMCALIsoPhoton : public AliAnalysisTaskSE {
24  public:
25   AliAnalysisTaskEMCALIsoPhoton();
26   AliAnalysisTaskEMCALIsoPhoton(const char *name);
27   virtual ~AliAnalysisTaskEMCALIsoPhoton() {}
28
29   void                   UserCreateOutputObjects();
30   void                   UserExec(Option_t *option);
31   void                   Terminate(Option_t *);
32
33   void                   GetCeIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
34   Double_t               GetCrossEnergy(const AliVCluster *cluster, Short_t &idmax);
35   Double_t               GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const; 
36   void                   GetTrIso(TVector3 vec, Float_t &iso, Float_t &phiband, Float_t &core);
37   void                   FillClusHists();
38   void                   FillMcHists();
39   void                   SetExotCut(Double_t c)                 { fExoticCut          = c;       }
40   void                   SetGeoName(const char *n)              { fGeoName            = n;       }
41   void                   SetIsoConeR(Double_t r)                { fIsoConeR           = r;       }
42   void                   SetPeriod(const char *n)               { fPeriod             = n;       }
43   void                   SetTriggerBit(const char *tb)          { fTrigBit            = tb;      }
44   void                   SetPrimTrackCuts(AliESDtrackCuts *c)   { fPrTrCuts           = c;       }
45   void                   SetTrainMode(Bool_t t)                 { fIsTrain            = t;       }
46   void                   SetMcMode(Bool_t mc)                   { fIsMc               = mc;      }
47   void                   SetDebugOn(Bool_t d)                   { fDebug              = d;       }
48   
49  protected:
50   TRefArray             *fCaloClusters;          //!pointer to EMCal clusters
51   TObjArray             *fSelPrimTracks;         //!pointer to ESD primary tracks
52   TClonesArray          *fTracks;                //!track input array
53   AliESDCaloCells       *fEMCalCells;            //!pointer to EMCal cells
54   AliESDtrackCuts       *fPrTrCuts;              //pointer to hold the prim track cuts
55   AliEMCALGeometry      *fGeom;                  // geometry utils
56   TString                fGeoName;               // geometry name (def = EMCAL_FIRSTYEARV1)
57   TString                fPeriod;                // string to the LHC period
58   TString                fTrigBit;               // string to the trigger bit name
59   Bool_t                 fIsTrain;               // variable to set train mode
60   Bool_t                 fIsMc;                  // variable to set mc mode
61   Bool_t                 fDebug;                 // variable to set on/off debugging printouts
62   Double_t               fExoticCut;             // variable to set the cut on exotic clusters
63   Double_t               fIsoConeR;              // variable to set the isolation cone radius
64   Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
65   Double_t               fECut;                  // variable to set the minimum E of a cluster
66   Int_t                  fTrackMult;             // global variable with the event multiplicity        
67
68   
69  private:
70   AliESDEvent *fESD;      //! ESD object
71   AliMCEvent  *fMCEvent;  //! MC event object
72   AliStack    *fStack;    //!MC particles stack object
73
74   TList       *fOutputList; //! Output list
75   //histograms for events with 1+ track pt>1
76   TH1F        *fEvtSel;                  //!evt selection counter: 0=all trg, 1=pv cut 
77   TH1F        *fNClusEt10;               //!number of clusters w/ Et>10 in the event
78   TH1F        *fPVtxZ;                   //!primary vertex Z before cut
79   TH1F        *fDirPhotonPtMC;           //!direct produced photon pt
80   TH1F        *fDecayPhotonPtMC;         //!decay photon pt
81   TH2F        *fCellAbsIdVsAmpl;         //!cell abs id vs cell amplitude (energy)
82   TH2F        *fNClusHighClusE;          //!total number of clusters vs. highest clus energy in the event
83   THnSparse   *fHnOutput;                //!Output matrix with 7 dimensions
84
85   AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
86   AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
87   
88   ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons
89 };
90 #endif