Task updated to estimate efficiency/contamination and to use the new CAF
[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   CreateOutputObjects();
47   virtual void   Exec(Option_t *option);
48   virtual void   Terminate(Option_t *);
49
50           Bool_t Equal(Double_t x, Double_t y, Double_t tolerance);
51   
52  protected:
53      
54  private:     
55  
56   void   SetTrigger(Int_t trigger) {fTrigger = trigger;}
57   AliESDEvent *fESD;               //! ESD object
58   AliMCEvent  *fMC;                //! MC event
59
60   TList         *fHmpHistList ;    // list of histograms
61   Int_t          fNevts       ;    //event numbering
62   Int_t          fTrigNevts   ;    //event numbering with the requested trigger
63   Int_t          fTrigger     ;    //requested trigger
64
65   TH2F          *fHmpPesdPhmp;     // HMP momentum vs ESD momentum
66   TH2F          *fHmpCkovPesd;     // Ckov angle vs ESD momentum
67   TH2F          *fHmpCkovPhmp;     // Ckov angle vs HMP momenutm
68
69   TH1F          *fHmpMipTrkDist;   // Track-Mip distance distribution
70   TH1F          *fHmpMipTrkDistX;  // Xtrk - Xmip
71   TH1F          *fHmpMipTrkDistY;  // Ytrk - Ymip
72   TH1F          *fHmpMipCharge3cm; // Mip charge with 3 cm distance cut
73   TH1F          *fHmpMipCharge1cm; // Mip charge with 1 cm distance cut
74   TH1F          *fHmpNumPhots;     // Number of reconstructed photo-electrons
75   TH1F          *fHmpTrkFlags;     // track flags
76
77   Int_t          fN1;              // number of points for pi and K
78   Int_t          fN2;              // number of point for p
79   TH1F          *fPionEff;         // identified pions
80   TH1F          *fKaonEff;         // identified kaons
81   TH1F          *fProtEff;         // identified protons
82   TH1I          *fPionTot;         // total pions
83   TH1I          *fKaonTot;         // total kaons
84   TH1I          *fProtTot;         // total protons
85   TH1F          *fPionNot;         // non-pion tracks
86   TH1F          *fKaonNot;         // non-kaon tracks
87   TH1F          *fProtNot;         // non-proton tracks
88   TH1I          *fPionCon;         // tracks identified as pions
89   TH1I          *fKaonCon;         // tracks identified as kaons
90   TH1I          *fProtCon;         // tracks identified as protons
91   TH2F          *fThetavsPiFromK;  // theta chkov of pis from Ks
92   TH2F          *fThetapivsPesd;   // theta chkov of pions vs Pesd
93   TH2F          *fThetaKvsPesd;    // theta chkov of kaons vs Pesd
94   TH2F          *fThetaPvsPesd;    // theta chkov of protons vs Pesd
95
96
97   ClassDef(AliHMPIDAnalysisTask,3);
98 };
99
100 #endif