]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEMCALIsoPhoton.h
fixing a very nasty bug, and cleaning up
[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   AliESDCaloCells       *fEMCalCells;            //!pointer to EMCal cells
47   AliESDtrackCuts       *fPrTrCuts;              //!pointer to hold the prim track cuts
48   AliEMCALGeometry      *fGeom;                  // geometry utils
49   TString                fGeoName;               // geometry name (def = EMCAL_FIRSTYEARV1)
50   TString                fPeriod;                // string to the LHC period
51   TString                fTrigBit;               // string to the trigger bit name
52   Bool_t                 fIsTrain;               // variable to set train mode
53   Double_t               fExoticCut;             // variable to set the cut on exotic clusters
54   Double_t               fIsoConeR;              // variable to set the isolation cone radius
55   Int_t                  fNDimensions;           // variable to set the number of dimensions of n-sparse
56   Double_t               fECut;                  // variable to set the minimum E of a cluster
57   
58  private:
59   AliESDEvent *fESD;      //! ESD object
60   TList       *fOutputList; //! Output list
61   //histograms for events with 1+ track pt>1
62   TH1F        *fEvtSel;                  //!evt selection counter: 0=all trg, 1=pv cut 
63   TH1F        *fPVtxZ;                   //!primary vertex Z before cut
64   TH2F        *fCellAbsIdVsAmpl;         //!cell abs id vs cell amplitude (energy)
65   TH2F        *fNClusHighClusE;          //!total number of clusters vs. highest clus energy in the event
66   THnSparse   *fHnOutput;                //!Output matrix with 7 dimensions
67
68   AliAnalysisTaskEMCALIsoPhoton(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
69   AliAnalysisTaskEMCALIsoPhoton& operator=(const AliAnalysisTaskEMCALIsoPhoton&); // not implemented
70   
71   ClassDef(AliAnalysisTaskEMCALIsoPhoton, 1); // Class to analyse isolated photons
72 };
73 #endif