]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALJetTasks/UserTasks/AliAnalysisTaskSAJF.h
create general emcal task lib
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / UserTasks / AliAnalysisTaskSAJF.h
1 #ifndef ALIANALYSISTASKSAJF_H
2 #define ALIANALYSISTASKSAJF_H
3
4 // $Id$
5
6 class TClonesArray;
7 class TString;
8 class TH1F;
9 class TH2F;
10 class AliRhoParameter;
11
12 #include "AliAnalysisTaskEmcalJet.h"
13
14 class AliAnalysisTaskSAJF : public AliAnalysisTaskEmcalJet {
15  public:
16
17   AliAnalysisTaskSAJF();
18   AliAnalysisTaskSAJF(const char *name);
19   virtual ~AliAnalysisTaskSAJF();
20
21   void                        UserCreateOutputObjects();
22   void                        Terminate(Option_t *option);
23
24   void                        SetJetMinRC2LJ(Float_t d)                            { fMinRC2LJ                = d          ; } 
25   void                        SetEmbJetsName(const char *n)                        { fEmbJetsName             = n          ; }
26   void                        SetRandTracksName(const char *n)                     { fRandTracksName          = n          ; }
27   void                        SetRandClusName(const char *n)                       { fRandCaloName            = n          ; }
28   void                        SetEmbTracksName(const char *n)                      { fEmbTracksName           = n          ; }
29   void                        SetEmbClusName(const char *n)                        { fEmbCaloName             = n          ; }
30   void                        SetRhoName(const char *n)                            { fRhoName                 = n          ; }
31   void                        SetMC(Bool_t m)                                      { fMCAna                   = m          ; }
32
33  protected:
34   void                        ExecOnce()                                                                                    ;
35   Bool_t                      RetrieveEventObjects()                                                                        ;
36   Bool_t                      FillHistograms()                                                                              ;
37   void                        GetLeadingJets(Int_t &maxJetIndex, Int_t &max2JetIndex)                                       ;
38   void                        DoJetLoop()                                                                                   ;
39   void                        DoEmbJetLoop(AliEmcalJet* &embJet, TObject* &embPart)                                         ;
40   void                        DoTrackLoop()                                                                                 ;
41   void                        DoClusterLoop()                                                                               ;
42   void                        DoEmbTrackLoop()                                                                              ;
43   void                        DoEmbClusterLoop()                                                                            ;
44   void                        GetRigidCone(Float_t &pt, Float_t &ptrigid, Float_t &eta, Float_t &phi, 
45                                            AliEmcalJet *jet = 0, TClonesArray* tracks = 0, TClonesArray* clusters = 0) const;
46
47   Bool_t                      fMCAna;                      // =true MC analysis (toy model)
48   Float_t                     fMinRC2LJ;                   // Minimum distance random cone to leading jet
49   TString                     fEmbJetsName;                // Name of embedded jet collection
50   TString                     fEmbTracksName;              // Name of embedded track collection
51   TString                     fEmbCaloName;                // Name of embedded calo cluster collection
52   TString                     fRandTracksName;             // Name of randomized track collection
53   TString                     fRandCaloName;               // Name of randomized calo cluster collection
54   TString                     fRhoName;                    // Name of rho object
55
56   TClonesArray               *fEmbJets;                    //!Embedded Jets
57   TClonesArray               *fEmbTracks;                  //!Embedded tracks
58   TClonesArray               *fEmbCaloClusters;            //!Embedded clusters  
59   TClonesArray               *fRandTracks;                 //!Randomized tracks
60   TClonesArray               *fRandCaloClusters;           //!Randomized clusters
61   AliRhoParameter            *fRho;                        //!Event rho
62   Double_t                    fRhoVal;                     //!Event rho value
63   Int_t                       fEmbeddedClusterId;          //!Embedded cluster id
64   Int_t                       fEmbeddedTrackId;            //!Embedded track id
65
66   // General histograms
67   TH1F                       *fHistCentrality;             //!Event centrality distribution
68   TH1F                       *fHistEvents[4];              //!Events accepted/rejected
69   TH1F                       *fHistTracksPt[4];            //!Inclusive track pt spectrum
70   TH1F                       *fHistClustersPt[4];          //!Inclusive clusters pt spectrum
71   TH2F                       *fHistJetPhiEta[4];           //!Phi-Eta distribution of jets
72   TH1F                       *fHistJetsPt[4];              //!Inclusive jet pt spectrum
73   TH2F                       *fHistJetsPtArea[4];          //!Jet pt vs. area
74   TH1F                       *fHistLeadingJetPt[4];        //!Leading jet pt spectrum
75   TH1F                       *fHist2LeadingJetPt[4];       //!Second leading jet pt spectrum
76   TH2F                       *fHistJetsNEFvsPt[4];         //!Jet neutral energy fraction vs. jet pt
77   TH2F                       *fHistJetsZvsPt[4];           //!Constituent Pt over Jet Pt ratio vs. jet pt
78   TH2F                       *fHistMaxTrackPtvsJetPt[4];   //!Max constituent track pt vs. jet pt
79   TH2F                       *fHistMaxClusPtvsJetPt[4];    //!Max constituent cluster pt vs. jet pt
80   TH2F                       *fHistMaxPartPtvsJetPt[4];    //!Max constituent particle (track or cluster) pt vs. jet pt
81   TH2F                       *fHistMaxTrackPtvsJetCorrPt[4];   //!Max constituent track pt vs. jet pt
82   TH2F                       *fHistMaxClusPtvsJetCorrPt[4];    //!Max constituent cluster pt vs. jet pt
83   TH2F                       *fHistMaxPartPtvsJetCorrPt[4];    //!Max constituent particle (track or cluster) pt vs. jet pt
84   TH2F                       *fHistConstituents[4];            //!x axis = constituents pt; y axis = no. of constituents; z axis = jet pt
85   TH1F                       *fHistDeltaVectorPt;              //!Delta Pt between vector and scalar sum
86
87   // Rho
88   TH1F                       *fHistRho[4];                    //!Rho distribution
89   TH2F                       *fHistRhoVSleadJetPt;            //!Area(leadjetarea) * rho vs. leading jet pt
90   TH1F                       *fHistJetsCorrPt[4];             //!Corrected inclusive jet pt spectrum
91   TH2F                       *fHistJetsCorrPtArea[4];         //!Jet pt vs. area
92   TH1F                       *fHistLeadingJetCorrPt[4];       //!Corrected leading jet pt spectrum
93
94   // Random cones
95   TH2F                       *fHistRCPhiEta;               //!Phi-Eta distribution of random cones
96   TH1F                       *fHistRCPtRigid[4];           //!Random cone pt, rigid
97   TH1F                       *fHistRCPt[4];                //!Random cone pt
98   TH1F                       *fHistRCPtExLJ[4];            //!Random cone pt, imposing min distance from leading jet
99   TH1F                       *fHistRCPtRand[4];            //!Random cone pt, randomized particles
100   TH2F                       *fHistRCPtExLJVSDPhiLJ;       //!Random cone pt, imposing min distance from leading jet, vs. deltaPhi leading jet
101   TH2F                       *fHistRhoVSRCPt;              //!Rho vs. Pt(RCExLJ) / Area(RCExLJ)
102   TH1F                       *fHistDeltaPtRCRigid[4];      //!deltaPt = Pt(RC) - A * rho, rigid
103   TH1F                       *fHistDeltaPtRC[4];           //!deltaPt = Pt(RC) - A * rho
104   TH1F                       *fHistDeltaPtRCExLJ[4];       //!deltaPt = Pt(RC) - A * rho, imposing min distance from leading jet
105   TH1F                       *fHistDeltaPtRCRand[4];       //!deltaPt = Pt(RC) - A * rho, randomzied particles
106
107   // Jet embedding
108   TH2F                       *fHistEmbNotFoundPhiEta[4];   //!Phi-Eta of "not found" embedded particles
109   TH1F                       *fHistEmbJetsPt[4];           //!Pt distribution of embedded jets
110   TH1F                       *fHistEmbJetsCorrPt[4];       //!Pt distribution of embedded jets
111   TH1F                       *fHistEmbJetsArea[4];         //!Area distribution of embedded jets
112   TH1F                       *fHistEmbPartPt[4];           //!Pt distribution of embedded particle
113   TH2F                       *fHistEmbJetPhiEta;           //!Phi-Eta distribution of embedded jets
114   TH2F                       *fHistEmbPartPhiEta;          //!Phi-Eta distribution of embedded particles
115   TH1F                       *fHistDistEmbPartJetAxis[4];  //!Distance between embedded particle and jet axis
116   TH2F                       *fHistRhoVSEmbBkg;            //!Area(embjet) * rho vs. Pt(embjet) - Pt(embtrack)
117   TH1F                       *fHistDeltaPtEmb[4];          //!deltaPt = Pt(embjet) - Area(embjet) * rho - Pt(embtrack)
118
119  private:
120   AliAnalysisTaskSAJF(const AliAnalysisTaskSAJF&);            // not implemented
121   AliAnalysisTaskSAJF &operator=(const AliAnalysisTaskSAJF&); // not implemented
122
123   ClassDef(AliAnalysisTaskSAJF, 9) // jet analysis task
124 };
125 #endif