K0s code update (Matt Steinpreis)
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / K0Analysis / AliFemtoK0Analysis.h
1 #ifndef ALIFEMTOK0ANALYSIS_H
2 #define ALIFEMTOK0ANALYSIS_H
3
4 //
5 // Class AliFemtoK0Analysis
6 //
7 // AliFemtoK0Analysis
8 // author:
9 //        Matthew Steinpreis (matthew.steinpreis@cern.ch)
10 //
11
12 class TH1F;
13 class TH1D;
14 class TH2D;
15 class TH3D;
16 class TProfile;
17 class TRandom3;
18
19 class AliESDEvent;
20 class AliAODEvent;
21 class AliESDtrackCuts;
22 class AliESDpid;
23
24 #include "AliAnalysisTask.h"
25 #include "AliAnalysisTaskSE.h"
26 #include "AliFemtoK0EventCollection.h"
27 #include "AliAODpidUtil.h"
28 #include "AliESDpid.h"
29
30 class AliFemtoK0Analysis : public AliAnalysisTaskSE {
31  public:
32   AliFemtoK0Analysis();
33   AliFemtoK0Analysis(const char *name, bool SignDep = kFALSE, bool FieldPositive = kTRUE, bool OnlineCase = kTRUE, bool MeritCase = kTRUE, bool Case3D = kFALSE, float MinDL = 0.0, int MeritCutChoice = 2, float MinSep = 5.0, bool FlatCent = kFALSE, bool PsiBinning = kFALSE);
34   virtual ~AliFemtoK0Analysis();
35   AliFemtoK0Analysis(const AliFemtoK0Analysis&);
36   AliFemtoK0Analysis& operator=(const AliFemtoK0Analysis&);
37
38  private:
39   
40   virtual void   UserCreateOutputObjects();
41   virtual void   Exec(Option_t *option);
42   virtual void   Terminate(Option_t *);  
43
44   void MyInit();
45   void GetGlobalPositionAtGlobalRadiiThroughTPC(const AliAODTrack *track, const Float_t bfield, Float_t globalPositionsAtRadii[9][3], double PrimaryVertex[3]);
46   bool CheckMeritCutWinner(int cutChoice, double oldPars[3], double newPars[3]);
47   bool RejectEventCentFlat(float MagField, float CentPercent);
48   
49   enum 
50   {
51     kCentBins    = 16,
52     kZVertexBins = 10,
53     kPsiBins     = 4,
54     kEventsToMix =  5,
55     kMultLimit   = 300,              //maximum number of v0s, array size
56  
57     ncthetabins = 36,
58     nphibins    = 72
59   };
60
61   bool fSignDep;
62   bool fFieldPos;
63   bool fOnlineCase;
64   bool fMeritCase;
65   bool fCase3D;
66   float fMinDecayLength;
67   int fMeritCutChoice;
68   float fMinSep;
69   bool fFlatCent;
70   bool fPsiBinning;
71
72   int fEventCount;
73
74   AliFemtoK0EventCollection ****fEC; //!
75   AliFemtoK0Event *fEvt; //!
76
77   TRandom3* fRandomNumber; //!
78   
79   const char     *fName;
80   AliAODEvent    *fAOD; //!    // AOD object
81   TList          *fOutputList; //! Compact Output list
82   AliPIDResponse *fPidAOD; //!
83   
84   ClassDef(AliFemtoK0Analysis, 1); 
85 };
86
87 #endif