]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskSAJF.h
updates from Salvatore
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskSAJF.h
1 #ifndef ALIANALYSISTASKSAJF_H
2 #define ALIANALYSISTASKSAJF_H
3
4 // $Id$
5
6 class TClonesArray;
7 class TString;
8 class AliVTrack;
9 class AliVCluster;
10 class AliEmcalJet;
11 class TList;
12 class TH1F;
13 class TH2F;
14
15 #include "AliAnalysisTaskSE.h"
16
17 class AliAnalysisTaskSAJF : public AliAnalysisTaskSE {
18  public:
19   
20   enum SAJFAnaType {
21     kFullAcceptance  = 0,     // Full acceptance
22     kEMCAL           = 1,     // EMCal acceptance only
23     kEMCALFiducial   = 2      // EMCal fiduacial region only
24   };
25
26   AliAnalysisTaskSAJF();
27   AliAnalysisTaskSAJF(const char *name);
28   virtual ~AliAnalysisTaskSAJF();
29
30   void                        UserCreateOutputObjects();
31   void                        UserExec(Option_t *option);
32   void                        Terminate(Option_t *option);
33   void                        Init();
34
35   void                        SetClusName(const char *n)                           { fCaloName      = n          ; }
36   void                        SetJetsName(const char *n)                           { fJetsName      = n          ; }
37   void                        SetKtJetsName(const char *n)                         { fKtJetsName    = n          ; }
38   void                        SetTracksName(const char *n)                         { fTracksName    = n          ; }
39   void                        SetTrgClusName(const char *n)                        { fTrgClusName   = n          ; }
40   void                        SetAnaType(SAJFAnaType type)                         { fAnaType       = type       ; }
41   void                        SetJetRadius(Float_t r)                              { fJetRadius     = r          ; } 
42   void                        SetHistoBins(Int_t nbins, Float_t min, Float_t max)  { fNbins = nbins; fMinPt = min; fMaxPt = max; }
43
44  protected:
45
46   AliVTrack                  *GetTrack(const Int_t i)               const;
47   Int_t                       GetNumberOfTracks()                   const;
48   AliVCluster                *GetCaloCluster(const Int_t i)         const;
49   Int_t                       GetNumberOfCaloClusters()             const;
50   AliEmcalJet                *GetJet(const Int_t i)                 const;
51   Int_t                       GetNumberOfJets()                     const;
52   AliEmcalJet                *GetKtJet(const Int_t i)               const;
53   Int_t                       GetNumberOfKtJets()                   const;
54   AliVCluster                *GetTrgCluster(const Int_t i)          const;
55   Int_t                       GetNumberOfTrgClusters()              const;
56   void                        FillHistograms()                           ;
57   void                        RetrieveEventObjects()                     ;
58   Bool_t                      AcceptTrack(AliVTrack* track)         const;
59   Bool_t                      AcceptJet(AliEmcalJet* jet)           const;
60   Bool_t                      AcceptJet(Float_t eta, Float_t phi)   const;
61   Bool_t                      IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted = kTRUE)    const;
62   Bool_t                      IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted = kTRUE)   const;
63   Float_t                     GetArea()                        const;
64   void                        DoJetLoop(Int_t &maxJetIndex, Int_t &max2JetIndex);
65   Float_t                     DoKtJetLoop();
66   Float_t                     DoTrackLoop(Int_t maxJetIndex, Int_t max2JetIndex);
67   Float_t                     DoClusterLoop(Int_t maxJetIndex, Int_t max2JetIndex);
68   Float_t                     GetRigidConePt(AliEmcalJet *jet = 0,  Float_t minD = 0.8);
69
70
71   SAJFAnaType                 fAnaType;                    // analysis type
72   Float_t                     fMinEta;                     // minimum eta accepatance
73   Float_t                     fMaxEta;                     // maximum eta accepatance
74   Float_t                     fMinPhi;                     // minimum phi accepatance
75   Float_t                     fMaxPhi;                     // maximum phi accepatance  
76   Float_t                     fJetRadius;                  // jet radius
77   TList                      *fOutput;                     // Output list
78   TString                     fTracksName;                 // name of track collection
79   TString                     fCaloName;                   // name of calo cluster collection
80   TString                     fJetsName;                   // name of jet collection
81   TString                     fKtJetsName;                 // name of kt jet collection
82   TString                     fTrgClusName;                // name of trg clus name
83   TClonesArray               *fTracks;                     //!Tracks
84   TClonesArray               *fCaloClusters;               //!Clusters
85   TClonesArray               *fJets;                       //!Jets
86   TClonesArray               *fKtJets;                     //!Kt Jets
87   TClonesArray               *fTrgClusters;                //!Trg Clusters
88   AliCentrality              *fCent;                       // Event centrality
89   Int_t                       fCentBin;                    // Event centrality bin
90   TH1F                       *fHistCentrality;             // Event centrality distribution
91   TH2F                       *fHistJetPhiEta;              // Phi-Eta distribution of jets
92   TH2F                       *fHistRhoPartVSleadJetPt;     // Background et density of particles (clusters+tracks) vs. leading jet pt
93   TH2F                       *fHistMedKtVSRhoPart;         // Median of the pt density of kt jets vs. background pt density of particles
94   TH2F                       *fHistRCPtVSRhoPart;          // Random cone Pt vs. background pt density of particles
95   TH1F                       *fHistJetsPt[4];              // Jet pt spectrum
96   TH1F                       *fHistJetsNEF[4];             // Jet neutral energy fraction
97   TH1F                       *fHistJetsZ[4];               // Constituent Pt over Jet Pt ratio
98   TH1F                       *fHistLeadingJetPt[4];        // Leading jet pt spectrum
99   TH1F                       *fHist2LeadingJetPt[4];       // Second leading jet pt spectrum
100   TH1F                       *fHistTracksPtLJ[4];          // Pt spectrum of tracks
101   TH1F                       *fHistClusEtLJ[4];            // Et spectrum of clusters
102   TH1F                       *fHistTracksPtBkg[4];         // Pt spectrum of tracks
103   TH1F                       *fHistClusEtBkg[4];           // Et spectrum of clusters
104   TH1F                       *fHistBkgClusPhiCorr[4];      // Background clusters phi correlations
105   TH1F                       *fHistBkgTracksPhiCorr[4];    // Background tracks phi correlations
106   TH1F                       *fHistBkgClusMeanRho[4];      // Background clusters mean et density
107   TH1F                       *fHistBkgTracksMeanRho[4];    // Background tracks mean pt density
108   TH1F                       *fHistBkgLJetPhiCorr[4];      // Background particles phi correlation with leading jet
109   TH1F                       *fHistMedianPtKtJet[4];       // Median of the pt density of kt jets, excluded the 2 most energetic
110   TH1F                       *fHistDeltaPtRC[4];           // deltaPt = Pt(RC) - A * rhoKt
111   TH1F                       *fHistDeltaPtRCExLJ[4];       // deltaPt = Pt(RC) - A * rhoKt, imposing min distance from leading jet
112   TH1F                       *fHistRCPt[4];                // Random cone pt
113   TH1F                       *fHistRCPtExLJ[4];            // Random cone pt, imposing min distance from leading jet
114   Int_t                       fNbins;                      // No. of pt bins
115   Float_t                     fMinPt;                      // Min pt
116   Float_t                     fMaxPt;                      // Max pt
117
118  private:
119   AliAnalysisTaskSAJF(const AliAnalysisTaskSAJF&);            // not implemented
120   AliAnalysisTaskSAJF &operator=(const AliAnalysisTaskSAJF&); // not implemented
121
122   ClassDef(AliAnalysisTaskSAJF, 1) // Isolated photons task
123 };
124 #endif