]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliAnalysisTaskMinijet.h
Complete the set of correction steps, available for ESD and AODs. Histos which are...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskMinijet.h
1 #ifndef ALIANALYSISTASKMINIJET_H\r
2 #define ALIANALYSISTASKMINIJET_H\r
3 \r
4 // Two-particle correlations using all particles over pt threshold\r
5 // Extract mini-jet yield and fragmentation properties via Delta-Phi histograms\r
6 // Can use ESD or AOD, reconstructed and Monte Carlo data as input\r
7 // Author: eva.sicking@cern.ch\r
8 \r
9 class TList;\r
10 class TH1F;\r
11 class TH2F;\r
12 class TH3F;\r
13 class TProfile;\r
14 class THnSparse;\r
15 class AliESDtrackCuts;\r
16 \r
17 #include "AliAnalysisTaskSE.h"\r
18 #include <vector>\r
19 \r
20 class AliAnalysisTaskMinijet : public AliAnalysisTaskSE {\r
21  public:\r
22   AliAnalysisTaskMinijet(const char *name="<default name>");\r
23   virtual ~AliAnalysisTaskMinijet();\r
24   \r
25   virtual void UserCreateOutputObjects();\r
26   virtual void UserExec(Option_t* option);\r
27   virtual void Terminate(Option_t *);\r
28   virtual void SetCuts(AliESDtrackCuts* cuts){fCuts = cuts;}\r
29   \r
30   void         SetUseMC(Bool_t useMC=kTRUE, Bool_t mcOnly=kFALSE)    {fUseMC = useMC; fMcOnly=mcOnly;}\r
31   void         SetAnalyseOnlyPrimaries(Bool_t analysePrimOnly)       {fAnalysePrimOnly = analysePrimOnly;} // not used anymore\r
32   void         SetPtRangeMultiplicity(Float_t ptMin, Float_t ptMax)  {fPtMin = ptMin; fPtMax = ptMax; }\r
33   void         SetTriggerPtCut(Float_t triggerPtCut)                 {fTriggerPtCut = triggerPtCut;}  \r
34   void         SetAssociatePtCut(Float_t associatePtCut)             {fAssociatePtCut = associatePtCut;} \r
35   void         SetModeEsdAod(Int_t mode)                             {fMode = mode;}\r
36   void         SetMaxVertexZ(Float_t vertexZCut)                     {fVertexZCut = vertexZCut;}\r
37   void         SetMaxEta(Float_t etaCut)                             {fEtaCut = etaCut;}\r
38   void         SetMaxEtaSeed(Float_t etaCutSeed)                     {fEtaCutSeed = etaCutSeed;}\r
39   void         SetSelectParticles(Int_t selectParticles)             {fSelectParticles = selectParticles;}\r
40   void         SetSelectParticlesAssoc(Int_t selectParticlesAssoc)   {fSelectParticlesAssoc = selectParticlesAssoc;}\r
41 \r
42 \r
43  private:\r
44 \r
45   Int_t LoopESD         (std::vector<Float_t> &pt,  std::vector<Float_t> &eta,\r
46                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
47                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
48   Int_t LoopESDRecMcProp(std::vector<Float_t> &pt,  std::vector<Float_t> &eta,\r
49                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
50                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
51   Int_t LoopESDMC       (std::vector<Float_t> &pt,  std::vector<Float_t> &eta,\r
52                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
53                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
54   \r
55   Int_t LoopAOD         (std::vector<Float_t> &pt,  std::vector<Float_t> &eta,  \r
56                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
57                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
58   Int_t LoopAODRecMcProp(std::vector<Float_t> &pt,  std::vector<Float_t> &eta,\r
59                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
60                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
61   Int_t LoopAODMC       (std::vector<Float_t> &pt,  std::vector<Float_t> &eta,  \r
62                          std::vector<Float_t> &phi,  std::vector<Short_t> &charge,\r
63                          std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
64   \r
65   void  Analyse         (const std::vector<Float_t> &pt, \r
66                          const std::vector<Float_t> &eta, \r
67                          const std::vector<Float_t> &phi, \r
68                          const std::vector<Short_t> &charge, \r
69                          const Int_t ntacks, const Int_t ntacklets=0, \r
70                          const Int_t nAll=0, const Int_t step=0);\r
71   \r
72   const Bool_t           SelectParticlePlusCharged(Short_t charge, Int_t pdg, Bool_t prim);\r
73   const Bool_t           SelectParticle(Short_t charge, Int_t pdg, Bool_t prim);\r
74   const Bool_t           CheckEvent(const Bool_t recVertex);\r
75   const Double_t*        CreateLogAxis(const Int_t nbins, const Double_t xmin, const Double_t xmax); \r
76   const Bool_t           CheckLikeSign(const Short_t chargeEventAxis, const Short_t chargeOthers);\r
77 \r
78 \r
79   Bool_t       fUseMC;                      // flag for Monte Carlo usages\r
80   Bool_t       fMcOnly;                     // flag defines, if only MC data is used in analysis or also reconstructed data\r
81   Double_t     fBSign;                      // magnetic field\r
82   Bool_t       fAnalysePrimOnly;            // flag for analysis of primaries only (also in reconstructed data)\r
83   Float_t      fPtMin;                      // set lower limit for pt acceptance for mutliplicity defintion\r
84   Float_t      fPtMax;                      // set upper limit for pt acceptance for mutliplicity defintion\r
85   AliESDtrackCuts* fCuts;                   // List of cuts for ESDs\r
86   Float_t      fTriggerPtCut;               // cut on particle pt used as event axis\r
87   Float_t      fAssociatePtCut;             // cut on particle pt used for correlations\r
88   Int_t        fMode;                       // ESD(=0) of AOD(=1) reading \r
89   Float_t      fVertexZCut;                 // vertex cut\r
90   Float_t      fEtaCut;                     // eta acceptance cut\r
91   Float_t      fEtaCutSeed;                 // eta acceptance cut for seed\r
92   Int_t        fSelectParticles;            // only in cas of MC: use also neutral particles or not \r
93   Int_t        fSelectParticlesAssoc;       // only in cas of MC: use also neutral particles or not \r
94 \r
95   AliESDEvent *fESDEvent;                   //! esd event\r
96   AliAODEvent *fAODEvent;                   //! aod event\r
97   Int_t        fNMcPrimAccept;              // global variable for mc multiplucity\r
98   Int_t        fNRecAccept;                 // global variable for rec multiplucity\r
99   Float_t      fVzEvent;                    // global variable for rec vertex position\r
100   Double_t     fMeanPtRec;                  // global variable for rec mean pt\r
101   Double_t     fLeadingPtRec;               // global variable for rec mean pt\r
102   \r
103   TList      *fHists;                       // output list\r
104   TH1F       *fStep;                        // how many events have passed which correction step\r
105   TH1F       *fHistPt;                      // Pt spectrum ESD\r
106   TH1F       *fHistPtMC;                    // Pt spectrum MC\r
107 \r
108   TH2F       *fNmcNch;                      // N mc - N ch rec\r
109   TProfile   *fPNmcNch;                     // N mc - N ch rec\r
110   TH2F       *fChargedPi0;                  // charged versus charged+Pi0\r
111 \r
112   THnSparse   *fMapSingleTrig[6];           //! multi-dim histo for trigger track properties\r
113   THnSparse   *fMapPair[6];                 //! multi-dim histo for pair properties\r
114   THnSparse   *fMapEvent[6];                //! multi-dim histo for event properties\r
115   THnSparse   *fMapAll[6];                  //! multi-dim histo for properties of all analysed tracks\r
116   \r
117   TH1F       * fVertexZ[6];                 // z of vertex\r
118   TH1F       * fNcharge[6];                 // pt\r
119   TH1F       * fPt[6];                      // pt\r
120   TH1F       * fEta[6];                     // eta\r
121   TH1F       * fPhi[6];                     // phi\r
122   TH1F       * fDcaXY[6];                   // dca xy direction\r
123   TH1F       * fDcaZ[6];                    // dca z direction\r
124 \r
125   TH1F       * fPtSeed[6];                  // pt of seed (event axis)\r
126   TH1F       * fEtaSeed[6];                 // eta of seed \r
127   TH1F       * fPhiSeed[6];                 // phi of seed\r
128 \r
129   TH1F       * fPtOthers[6];                // pt of all other particels used in dEtadPhi\r
130   TH1F       * fEtaOthers[6];               // eta of all other particels used in dEtadPhi\r
131   TH1F       * fPhiOthers[6];               // phi of all other particels used in dEtadPhi\r
132   TH2F       * fPtEtaOthers[6];             // pt-eta of all other particels used in dEtadPhi\r
133 \r
134 \r
135   TH2F       * fPhiEta[6];                  // eta - phi\r
136   TH2F       * fDPhiDEtaEventAxis[6];       // correlation dEta-dPhi towards event axis\r
137   TH2F       * fDPhiDEtaEventAxisSeeds[6];  // correlation dEta-dPhi towards event axis of trigger particles\r
138   TH1F       * fTriggerNch[6];              // number of triggers with accepted-track number\r
139   TH2F       * fTriggerNchSeeds[6];         // number of triggers with accepted-track number\r
140   TH1F       * fTriggerTracklet[6];         // number of triggers with accepted-tracklet number\r
141   TH2F       * fNch07Nch[6];                // nCharged with pT>fTriggerPtCut vs nCharged\r
142   TProfile   * fPNch07Nch[6];               // nCharged with pT>fTriggerPtCut vs nCharged\r
143   \r
144   TH2F       * fNch07Tracklet[6];           // nCharged with pT>fTriggerPtCut vs nTracklet\r
145   TH2F       * fNchTracklet[6];             // nCharged vs nTracklet\r
146   TProfile   * fPNch07Tracklet[6];           // nCharged with pT>fTriggerPtCut vs nTracklet\r
147 \r
148   TH1F       * fDPhiEventAxis[6];           // delta phi of associate tracks to event axis\r
149   \r
150   AliAnalysisTaskMinijet(const AliAnalysisTaskMinijet&); // not implemented\r
151   AliAnalysisTaskMinijet& operator=(const AliAnalysisTaskMinijet&); // not implemented\r
152   \r
153   ClassDef(AliAnalysisTaskMinijet, 1); // example of analysis\r
154 };\r
155 \r
156 #endif\r