Histos for pbar/p corrections added and few data members deleted, plus minor changes
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDAnalysisTask.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 //==============================================================================
17 // AliHMPIDAnalysysTask - Class representing a basic analysis tool of HMPID data at  
18 // level of ESD.
19 // A set of histograms is created.
20 //==============================================================================
21
22 #ifndef ALIHMPIDANALYSISTASK_H
23 #define ALIHMPIDANALYSISTASK_H
24
25 #include "AliAnalysisTaskSE.h"
26 #include "AliStack.h"
27
28 class TH1;
29 class TParticle;
30 class TFile;
31 class AliESDtrack;
32 class AliESDEvent;
33
34 class AliHMPIDAnalysisTask : public AliAnalysisTaskSE {
35   public:
36
37   enum {kChamber = 7};
38
39   AliHMPIDAnalysisTask();
40   AliHMPIDAnalysisTask(const Char_t* name);
41   AliHMPIDAnalysisTask& operator= (const AliHMPIDAnalysisTask& c);
42   AliHMPIDAnalysisTask(const AliHMPIDAnalysisTask& c);
43   virtual ~AliHMPIDAnalysisTask();
44   
45   virtual void   ConnectInputData(Option_t *);
46   virtual void   UserCreateOutputObjects();
47   virtual void   UserExec(Option_t *option);
48   virtual void   Terminate(Option_t *);
49
50           void   SetUseMC(Bool_t useMC) { fUseMC = useMC; }
51           Bool_t Equal(Double_t x, Double_t y, Double_t tolerance);
52
53  protected:
54      
55  private:     
56  
57   AliESDEvent *fESD;               //! ESD object
58   AliMCEvent  *fMC;                //! MC event
59
60   Bool_t       fUseMC;             // decide whether use or not the MC information
61
62   TList         *fHmpHistList ;    // list of histograms
63
64   TH2F          *fHmpPesdPhmp;     // HMP momentum vs ESD momentum
65   TH2F          *fHmpCkovPesd;     // Ckov angle vs ESD momentum
66   TH2F          *fHmpCkovPhmp;     // Ckov angle vs HMP momenutm
67
68   TH1F          *fHmpMipTrkDist;   // Track-Mip distance distribution
69   TH1F          *fHmpMipTrkDistX;  // Xtrk - Xmip
70   TH1F          *fHmpMipTrkDistY;  // Ytrk - Ymip
71   TH1F          *fHmpMipCharge3cm; // Mip charge with 3 cm distance cut
72   TH1F          *fHmpMipCharge1cm; // Mip charge with 1 cm distance cut
73   TH1F          *fHmpNumPhots;     // Number of reconstructed photo-electrons
74   TH1F          *fHmpTrkFlags;     // track flags
75
76   Int_t          fN1;              // number of points for pi and K
77   Int_t          fN2;              // number of point for p
78   TH1F          *fPionEff;         // identified pions
79   TH1F          *fKaonEff;         // identified kaons
80   TH1F          *fProtEff;         // identified protons
81   TH1I          *fPionTot;         // total pions
82   TH1I          *fKaonTot;         // total kaons
83   TH1I          *fProtTot;         // total protons
84   TH1F          *fPionNot;         // non-pion tracks
85   TH1F          *fKaonNot;         // non-kaon tracks
86   TH1F          *fProtNot;         // non-proton tracks
87   TH1I          *fPionCon;         // tracks identified as pions
88   TH1I          *fKaonCon;         // tracks identified as kaons
89   TH1I          *fProtCon;         // tracks identified as protons
90   TH2F          *fThetavsPiFromK;  // theta chkov of pis from Ks
91   TH2F          *fThetapivsPesd;   // theta chkov of pions vs Pesd
92   TH2F          *fThetaKvsPesd;    // theta chkov of kaons vs Pesd
93   TH2F          *fThetaPvsPesd;    // theta chkov of protons vs Pesd
94   TH1I          *fProtGen;         // generated protons from MC
95   TH1I          *fPbarGen;         // generated antiprotons from MC
96   TH1I          *fProtHmp;         // protons into the HMPID
97   TH1I          *fPbarHmp;         // antiprotons into the HMPID
98
99   TTree         *fTree;            // tree with useful data for subsequent analysis
100   Float_t        fVar[28];         // array of data to fill the tree
101
102   ClassDef(AliHMPIDAnalysisTask,4);
103 };
104
105 #endif