]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0/AliAnalysisTaskExtractV0AOD.h
Commit for Simone - Changed bin size and phi calculation
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0 / AliAnalysisTaskExtractV0AOD.h
1 #ifndef ALIANALYSISTASKEXTRACTV0AOD_H
2 #define ALIANALYSISTASKEXTRACTV0AOD_H
3
4 /**************************************************************************
5  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6  *                                                                        *
7  * Author: The ALICE Off-line Project.                                    *
8  * Contributors are mentioned in the code where appropriate.              *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          *
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18
19 //-----------------------------------------------------------------
20 //      AliAnalysisTaskExtractV0AOD class
21 //      ---------------------------------
22 //
23 //    Please see cxx file for more details.   
24 //             
25 //-----------------------------------------------------------------
26
27 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
28 //
29 // --- This version: 23rd March 2012 
30 //
31 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
32
33 class TList;
34 class TH1F;
35 class TH2F;
36 class TH3F;
37 class TVector3;
38 class THnSparse;
39
40 class AliESDpid;
41 class AliESDtrackCuts;
42 class AliESDEvent;
43 class AliAODEvent;
44 class AliPhysicsSelection;
45 class AliCFContainer;
46
47 //#include "TString.h"
48 //#include "AliESDtrackCuts.h"
49 #include "AliAnalysisTaskSE.h"
50
51 class AliAnalysisTaskExtractV0AOD : public AliAnalysisTaskSE {
52  public:
53         AliAnalysisTaskExtractV0AOD();
54         AliAnalysisTaskExtractV0AOD(const char *name);
55         virtual ~AliAnalysisTaskExtractV0AOD();
56         
57         virtual void     UserCreateOutputObjects();
58         virtual void     UserExec(Option_t *option);
59         virtual void     Terminate(Option_t *);
60   void CheckChargeV0(AliESDv0 *thisv0);
61
62   void SetIsNuclear           (Bool_t lIsNuclear   = kTRUE  ) { fkIsNuclear   = lIsNuclear;   }
63   void SetIsLowEnergyPP       (Bool_t lLowEnergyPP = kTRUE  ) { fkLowEnergyPP = lLowEnergyPP; }
64   void SetUseOnTheFly         (Bool_t lUseOnTheFly = kTRUE  ) { fkUseOnTheFly = lUseOnTheFly; }
65   void SetTriggerMask         (TString lTriggerMask = "kMB" ) { fTriggerMask  = lTriggerMask; }
66
67  private:
68                                 // Note : In ROOT, "//!" means "do not stream the data from Master node to Worker node" ...
69                                 // your data member object is created on the worker nodes and streaming is not needed.
70                                 // http://root.cern.ch/download/doc/11InputOutput.pdf, page 14
71         TList   *fListHistV0;   //! List of output objects
72         TTree   *fTree;                                                 //! Output Tree
73
74         AliPIDResponse *fPIDResponse;     // PID response object
75
76   //Objects Controlling Task Behaviour 
77   
78   Bool_t fkIsNuclear;   // if true, replace multiplicity est. by centrality (default FALSE) 
79   Bool_t fkLowEnergyPP; // if true, skip FASTOnly (default FALSE)
80   Bool_t fkUseOnTheFly; // if true, will use On-the-fly V0s instead of Offline V0s (default FALSE)
81
82   TString fTriggerMask; // Selected trigger mask (kMB, kINT7, kINT8, kAnyINT)
83
84   //Variables for Tree
85         Float_t fTreeVariableChi2V0;         //!
86         Float_t fTreeVariableDcaV0Daughters; //!
87         Float_t fTreeVariableDcaV0ToPrimVertex; //!
88         Float_t fTreeVariableDcaPosToPrimVertex; //!
89         Float_t fTreeVariableDcaNegToPrimVertex; //!
90         Float_t fTreeVariableV0CosineOfPointingAngle; //!
91         Float_t fTreeVariableV0Radius; //!
92         Float_t fTreeVariablePt; //!
93         Float_t fTreeVariableRapK0Short; //!
94         Float_t fTreeVariableRapLambda; //!
95         Float_t fTreeVariableInvMassK0s; //!
96         Float_t fTreeVariableInvMassLambda; //!
97         Float_t fTreeVariableInvMassAntiLambda; //!
98         Float_t fTreeVariableAlphaV0; //!
99         Float_t fTreeVariablePtArmV0;//!
100         Float_t fTreeVariableNegTotMomentum; //!        
101         Float_t fTreeVariablePosTotMomentum; //!
102         Float_t fTreeVariableNegdEdxSig; //!
103         Float_t fTreeVariablePosdEdxSig; //!
104         Float_t fTreeVariableNegEta; //!
105         Float_t fTreeVariablePosEta; //!
106
107         Float_t fTreeVariableNSigmasPosProton; //!
108         Float_t fTreeVariableNSigmasPosPion; //! 
109         Float_t fTreeVariableNSigmasNegProton; //!
110         Float_t fTreeVariableNSigmasNegPion; //! 
111         
112         Float_t fTreeVariableDistOverTotMom;//!
113         Int_t   fTreeVariableLeastNbrCrossedRows;//!
114         Float_t fTreeVariableLeastRatioCrossedRowsOverFindable;//!
115         Int_t   fTreeVariableMultiplicity ;//!
116
117   Int_t   fTreeVariableRunNumber; //! 
118   ULong64_t fTreeVariableEventNumber; //!
119
120
121 //Note: TDistOverTotMom needs a mass hypothesis to be converted to proper decaylength.
122
123         TH1F    *fHistV0MultiplicityBeforeTrigSel;             //! V0 multiplicity distribution
124         TH1F    *fHistV0MultiplicityForTrigEvt;                //! V0 multiplicity distribution
125         TH1F    *fHistV0MultiplicityForSelEvt;                 //! V0 multiplicity distribution
126         TH1F    *fHistV0MultiplicityForSelEvtNoTPCOnly;        //! V0 multiplicity distribution
127         TH1F    *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup;//! V0 multiplicity distribution
128
129         TH1F    *fHistMultiplicityBeforeTrigSel;                //! multiplicity distribution    
130         TH1F    *fHistMultiplicityForTrigEvt;                   //! multiplicity distribution
131         TH1F    *fHistMultiplicity;                                                     //! multiplicity distribution
132         TH1F    *fHistMultiplicityNoTPCOnly;                            //! multiplicity distribution
133         TH1F    *fHistMultiplicityNoTPCOnlyNoPileup;                    //! multiplicity distribution
134
135         TH1F    *fHistPVx;                                              //! multiplicity distribution
136         TH1F    *fHistPVy;                                              //! multiplicity distribution
137         TH1F    *fHistPVz;                                              //! multiplicity distribution
138         TH1F    *fHistPVxAnalysis;                                              //! multiplicity distribution
139         TH1F    *fHistPVyAnalysis;                                              //! multiplicity distribution
140         TH1F    *fHistPVzAnalysis;                                              //! multiplicity distribution
141         TH1F    *fHistSwappedV0Counter;                                                 //! Swapped V0 Counter
142
143    AliAnalysisTaskExtractV0AOD(const AliAnalysisTaskExtractV0AOD&);            // not implemented
144    AliAnalysisTaskExtractV0AOD& operator=(const AliAnalysisTaskExtractV0AOD&); // not implemented
145   
146    ClassDef(AliAnalysisTaskExtractV0AOD, 11);
147 };
148
149 #endif