Changes in DeltaPhi histrograms; usage of all possible trigger particles instead...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskMinijet.h
1 #ifndef ALIANALYSISTASKMINIJET_H\r
2 #define ALIANALYSISTASKMINIJET_H\r
3 \r
4 // analysis task performing mini jet analysis (use ESD or AOD as input)\r
5 // Author: eva.sicking@cern.ch\r
6 \r
7 class TList;\r
8 class TH1F;\r
9 class TH2F;\r
10 class TProfile;\r
11 \r
12 class AliESDtrackCuts;\r
13 \r
14 \r
15 #include "AliAnalysisTaskSE.h"\r
16 \r
17 class AliAnalysisTaskMinijet : public AliAnalysisTaskSE {\r
18  public:\r
19   AliAnalysisTaskMinijet(const char *name="<default name>");\r
20   virtual ~AliAnalysisTaskMinijet();\r
21   \r
22   virtual void   UserCreateOutputObjects();\r
23   virtual void   UserExec(Option_t* option);\r
24   virtual void   Terminate(Option_t *);\r
25   \r
26   Int_t LoopESD  (Float_t **pt, Float_t **eta, Float_t **phi, Short_t **charge, Int_t **nTracksTracklets);\r
27   Int_t LoopESDMC(Float_t **pt, Float_t **eta, Float_t **phi, Short_t **charge,  Int_t **nTracksTracklets);\r
28   Int_t LoopAOD  (Float_t **pt, Float_t **eta, Float_t **phi, Short_t **charge,  Int_t **nTracksTracklets);\r
29   Int_t LoopAODMC(Float_t **pt, Float_t **eta, Float_t **phi, Short_t **charge,  Int_t **nTracksTracklets);\r
30   void  Analyse  (Float_t* pt, Float_t* eta, Float_t* phi,  Short_t *charge, Int_t ntacks, Int_t ntacklets=0,Int_t nAll=0, Int_t mode=0);\r
31   void  CleanArrays(Float_t* pt, Float_t* eta, Float_t* phi,  Short_t *charge, Int_t* nTracksTracklets=0);\r
32   Bool_t SelectParticlePlusCharged(Short_t charge, Int_t pdg, Bool_t prim);\r
33   Bool_t SelectParticle(Short_t charge, Int_t pdg, Bool_t prim);\r
34 \r
35 \r
36   void UseMC(Bool_t useMC=kTRUE, Bool_t mcOnly=kFALSE)    {fUseMC = useMC; fMcOnly=mcOnly;}\r
37 \r
38   virtual void   SetCuts(AliESDtrackCuts* cuts)           {fCuts = cuts;}\r
39 \r
40   void   SetRadiusCut(Float_t radiusCut)                  {fRadiusCut = radiusCut;}  \r
41   void   SetTriggerPtCut(Float_t triggerPtCut)            {fTriggerPtCut = triggerPtCut;}  \r
42   void   SetAssociatePtCut(Float_t associatePtCut)        {fAssociatePtCut = associatePtCut;} \r
43   void   SetEventAxis(Int_t leadingOrRandom)              {fLeadingOrRandom = leadingOrRandom;}  \r
44   void   SetMode(Int_t mode)                              {fMode = mode;}\r
45   void   SetMaxVertexZ(Float_t vertexZCut)                {fVertexZCut = vertexZCut;}\r
46   void   SetMaxEta(Float_t etaCut)                        {fEtaCut = etaCut;}\r
47   void   SetMaxEtaSeed(Float_t etaCutSeed)                {fEtaCutSeed = etaCutSeed;}\r
48 \r
49   void   SelectParticles(Int_t selectParticles)           {fSelectParticles = selectParticles;}\r
50   void   SelectParticlesAssoc(Int_t selectParticlesAssoc) {fSelectParticlesAssoc = selectParticlesAssoc;}\r
51 \r
52 \r
53  private:\r
54 \r
55   Bool_t       fUseMC;\r
56   Bool_t       fMcOnly;\r
57   AliESDtrackCuts* fCuts;                   // List of cuts for ESDs\r
58   Float_t      fRadiusCut;                  // radius cut \r
59   Float_t      fTriggerPtCut;               // cut on particle pt used as event axis\r
60   Float_t      fAssociatePtCut;             // cut on particle pt used for correlations\r
61   Int_t        fLeadingOrRandom;            // event axis:leading track or random track\r
62   Int_t        fMode;                       // ESD(=0) of AOD(=1) reading \r
63   Float_t      fVertexZCut;                 // vertex cut\r
64   Float_t      fEtaCut;                     // eta acceptance cut\r
65   Float_t      fEtaCutSeed;                 // eta acceptance cut for seed\r
66   Int_t        fSelectParticles;            // only in cas of MC: use also neutral particles or not \r
67   Int_t        fSelectParticlesAssoc;       // only in cas of MC: use also neutral particles or not \r
68 \r
69   AliESDEvent *fESDEvent;                   //! esd event\r
70   AliAODEvent *fAODEvent;                   //! aod event\r
71   Int_t        fNMcPrimAccept;              // global variable for mc multiplucity\r
72   Float_t      fVzEvent;                    // global variable for rec vertex position\r
73   \r
74   TList      *fHists;                      // output list\r
75   TH1F       *fHistPt;                     // Pt spectrum ESD\r
76   TH1F       *fHistPtMC;                   // Pt spectrum MC\r
77   TH2F       *fNmcNch;                     // N mc - N ch rec\r
78   TProfile   *pNmcNch;                     // N mc - N ch rec\r
79   TH2F       *fChargedPi0;                 // charged versus charged+Pi0\r
80   TH1F       * fVertexZ[4];                 // z of vertex\r
81 \r
82   TH1F       * fPt[4];                      // pt\r
83   TH1F       * fEta[4];                     // et\r
84   TH1F       * fPhi[4];                     // phi\r
85   TH1F       * fDcaXY[4];                   // dca xy direction\r
86   TH1F       * fDcaZ[4];                    // dca z direction\r
87 \r
88   TH1F       * fPtSeed[4];                  // pt of seed (event axis)\r
89   TH1F       * fEtaSeed[4];                 // eta of seed \r
90   TH1F       * fPhiSeed[4];                 // phi of seed\r
91 \r
92   TH1F       * fPtOthers[4];                // pt of all other particels used in dEtadPhi\r
93   TH1F       * fEtaOthers[4];               // eta of all other particels used in dEtadPhi\r
94   TH1F       * fPhiOthers[4];               // phi of all other particels used in dEtadPhi\r
95   TH2F       * fPtEtaOthers[4];             // pt-eta of all other particels used in dEtadPhi\r
96 \r
97 \r
98   TH2F       * fPhiEta[4];                  // eta - phi\r
99   TH2F       * fDPhiDEtaEventAxis[4];       // correlation dEta-dPhi towards event axis\r
100   TH2F       * fDPhiDEtaEventAxisSeeds[4];  // correlation dEta-dPhi towards event axis of trigger particles\r
101   TH1F       * fTriggerNch[4];              // number of triggers with accepted-track number\r
102   TH2F       * fTriggerNchSeeds[4];         // number of triggers with accepted-track number\r
103   TH1F       * fTriggerTracklet[4];         // number of triggers with accepted-tracklet number\r
104   TH2F       * fNch07Nch[4];                // nCharged with pT>fTriggerPtCut vs nCharged\r
105   TProfile   * pNch07Nch[4];                // nCharged with pT>fTriggerPtCut vs nCharged\r
106   TH2F       * fNch07Tracklet[4];           // nCharged with pT>fTriggerPtCut vs nTracklet\r
107   TH2F       * fNchTracklet[4];             // nCharged vs nTracklet\r
108   TProfile   * pNch07Tracklet[4];           // nCharged with pT>fTriggerPtCut vs nTracklet\r
109 \r
110   TH1F       * fDPhiEventAxis[4];           // delta phi of associate tracks to event axis\r
111   TH1F       * fDPhiEventAxisNchBin[4][150];// delta phi of associate tracks to event axis per Nch bin\r
112   TH1F       * fDPhiEventAxisNchBinTrig[4][150];// "" for all possoble trigger particles\r
113 \r
114   TH1F       * fDPhiEventAxisTrackletBin[4][150]; // delta phi of associate tracks to event axis per Nch bin\r
115   TH1F       * fDPhiEventAxisTrackletBinTrig[4][150]; // "" for all possible trigger particles\r
116 \r
117   AliAnalysisTaskMinijet(const AliAnalysisTaskMinijet&); // not implemented\r
118   AliAnalysisTaskMinijet& operator=(const AliAnalysisTaskMinijet&); // not implemented\r
119   \r
120   ClassDef(AliAnalysisTaskMinijet, 1); // example of analysis\r
121 };\r
122 \r
123 #endif\r