K0s analysis 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, bool CutCheck = kFALSE, float MinDL = 0.0, int MeritCutChoice = 4, float MinSep = 5.0, bool FlatCent = kFALSE, bool PsiBinning = kFALSE, int NPsiBins = 1);
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     kEventsToMix =  5,
54     kMultLimit   = 300,              //maximum number of v0s, array size
55  
56     ncthetabins = 36,
57     nphibins    = 72
58   };
59
60   bool fSignDep;
61   bool fFieldPos;
62   bool fOnlineCase;
63   bool fMeritCase;
64   bool fCase3D;
65   bool fCutCheck;
66   float fMinDecayLength;
67   int fMeritCutChoice;
68   float fMinSep;
69   bool fFlatCent;
70   bool fPsiBinning;
71   int fNPsiBins;
72
73   int fEventCount;
74
75   AliFemtoK0EventCollection ****fEC; //!
76   AliFemtoK0Event *fEvt; //!
77
78   TRandom3* fRandomNumber; //!
79   
80   const char     *fName;
81   AliAODEvent    *fAOD; //!    // AOD object
82   TList          *fOutputList; //! Compact Output list
83   AliPIDResponse *fPidAOD; //!
84   
85   ClassDef(AliFemtoK0Analysis, 1); 
86 };
87
88 #endif