]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/SPECTRA/AliAnalysisTaskStrange.h
Make some calculations optional for HLT
[u/mrichter/AliRoot.git] / PWG2 / SPECTRA / AliAnalysisTaskStrange.h
1 #ifndef ALIANALYSISTASKSTRANGE_H
2 #define ALIANALYSISTASKSTRANGE_H
3
4 /*  See cxx source for full Copyright notice */
5
6 //-----------------------------------------------------------------
7 //                 AliAnalysisTaskStrange class
8 //       This task is for single strange study from ESD/AOD
9 //          Origin: H.Ricaud, Helene.Ricaud@IReS.in2p3.fr
10 //-----------------------------------------------------------------
11
12 class TString;
13 class TList;
14 class TH1F;
15 class TH2F;
16
17 #include "AliAnalysisTaskSE.h"
18
19 class AliESDEvent;
20 class AliESDVertex;
21 class AliAODEvent;
22
23 class AliAnalysisTaskStrange : public AliAnalysisTaskSE {
24  public:
25   AliAnalysisTaskStrange();
26   AliAnalysisTaskStrange(const char *name,  const char *optCuts);
27   virtual ~AliAnalysisTaskStrange() {}
28   
29   virtual void   UserCreateOutputObjects();
30   virtual void   UserExec(Option_t *option);
31   virtual void   Terminate(Option_t *);
32
33   void   SetCollidingSystems(Short_t collidingSystems = 0) {fCollidingSystems = collidingSystems;}
34   void   SetAnalysisType(const char* analysisType) {fAnalysisType = analysisType;}
35   
36  private:
37   TString      fAnalysisType;                   //  ESD or AOD
38   Short_t      fCollidingSystems;               //  Colliding systems 0/1 for pp/PbPb  
39   TString      fOption;                         //  Option for the selections
40   TList       *fListHist;                       //! List of histograms
41   TH1F        *fHistPrimaryVertexPosX;          //! Primary vertex position in X
42   TH1F        *fHistPrimaryVertexPosY;          //! Primary vertex position in Y
43   TH1F        *fHistPrimaryVertexPosZ;          //! Primary vertex position in Z
44   TH1F        *fHistTrackMultiplicity;          //! V0 multiplicity distribution
45   TH1F        *fHistV0Multiplicity;
46
47   TH2F        *fHistDcaPosToPrimVertex;         //! Dca of V0 positive daughter to primary vertex
48   TH2F        *fHistDcaNegToPrimVertex;         //! Dca of V0 negative daughter to primary vertex
49   TH2F        *fHistDcaPosToPrimVertexZoom;     //! Zoom
50   TH2F        *fHistDcaNegToPrimVertexZoom;     //! Zoom
51   TH2F        *fHistRadiusV0;                   //! V0 radial distance distribution
52   TH2F        *fHistDecayLengthV0;              //! V0 decay length distribution
53   TH2F        *fHistDcaV0Daughters;             //! Dca between V0 daughters
54   TH2F        *fHistChi2;                       //! V0 chi2 distribution
55   TH2F        *fHistCosPointAngle;              //! Cosine of V0 pointing angle
56   TH2F        *fHistCosPointAngleZoom;          //! Zoom
57
58               // V0 offline distributions
59   TH1F        *fHistV0MultiplicityOff;          //! V0 multiplicity distribution offline
60   TH2F        *fHistPtVsYK0sOff;                //! Pt vs.Y with K0s assumption
61   TH2F        *fHistPtVsYLambdaOff;             //! Pt vs.Y with Lambda assumption
62   TH2F        *fHistPtVsYAntiLambdaOff;         //! Pt vs.Y with Anti-Lambda assumption
63   TH1F        *fHistMassK0sOff;                 //! Invariant mass of K0s
64   TH1F        *fHistMassLambdaOff;              //! Invariant mass of Lambda
65   TH1F        *fHistMassAntiLambdaOff;          //! Invariant mass of Anti-Lambda
66   TH2F        *fHistMassVsRadiusK0sOff;         //! Invariant mass vs. radius of K0s     
67   TH2F        *fHistMassVsRadiusLambdaOff;      //! Invariant mass vs. radius of Lambda  
68   TH2F        *fHistMassVsRadiusAntiLambdaOff;  //! Invariant mass vs. radius of Anti-Lambda
69   TH2F        *fHistPtVsMassK0sOff;             //! Pt vs. invariant mass of K0s            
70   TH2F        *fHistPtVsMassLambdaOff;          //! Pt vs. invariant mass of Lambda         
71   TH2F        *fHistPtVsMassAntiLambdaOff;      //! Pt vs. invariant mass of Anti-Lambda
72   TH2F        *fHistArmenterosPodolanskiOff;    //! Armenteros-Podolanski distribution       
73
74               // V0 on-the-fly distributions
75   TH1F        *fHistV0MultiplicityOn;          //! V0 multiplicity distribution on-the-fly
76   TH2F        *fHistPtVsYK0sOn;                //! Pt vs.Y with K0s assumption              
77   TH2F        *fHistPtVsYLambdaOn;             //! Pt vs.Y with Lambda assumption           
78   TH2F        *fHistPtVsYAntiLambdaOn;         //! Pt vs.Y with Anti-Lambda assumption      
79   TH1F        *fHistMassK0sOn;                 //! Invariant mass of K0s                    
80   TH1F        *fHistMassLambdaOn;              //! Invariant mass of Lambda                  
81   TH1F        *fHistMassAntiLambdaOn;          //! Invariant mass of Anti-Lambda            
82   TH2F        *fHistMassVsRadiusK0sOn;         //! Invariant mass vs. radius of K0s         
83   TH2F        *fHistMassVsRadiusLambdaOn;      //! Invariant mass vs. radius of Lambda      
84   TH2F        *fHistMassVsRadiusAntiLambdaOn;  //! Invariant mass vs. radius of Anti-Lambda
85   TH2F        *fHistPtVsMassK0sOn;             //! Pt vs. invariant mass of K0s     
86   TH2F        *fHistPtVsMassLambdaOn;          //! Pt vs. invariant mass of Lambda          
87   TH2F        *fHistPtVsMassAntiLambdaOn;      //! Pt vs. invariant mass of Anti-Lambda    
88   TH2F        *fHistArmenterosPodolanskiOn;    //! Armenteros-Podolanski distribution
89    
90   AliAnalysisTaskStrange(const AliAnalysisTaskStrange&);            // not implemented 
91   AliAnalysisTaskStrange& operator=(const AliAnalysisTaskStrange&); // not implemented 
92
93   ClassDef(AliAnalysisTaskStrange, 1); 
94 };
95
96 #endif