K0s analysis update (Matt Steinpreis)
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / K0Analysis / AliFemtoK0EventCollection.h
1 #ifndef ALIFEMTOK0EVENTCOLLECTION_H
2 #define ALIFEMTOK0EVENTCOLLECTION_H
3 //
4 //Class AliFemtoK0Particle, AliFemtoK0Event, AliFemtoK0EventCollection
5 //
6 //AliFemtoK0Particle, AliFemtoK0Event, AliFemtoK0EventCollection
7 //authors: 
8 //        Dhevan Gangadharan (dhevan.raja.gangadharan@cern.ch)
9 //        Matthew Steinpreis (matthew.steinpreis@cern.ch)
10 //
11
12
13 #include <iostream>
14 #include <string>
15 #include "TH1.h"
16 #include "TH2.h"
17 #include "TH3.h"
18 #include "TBits.h"
19 #include "TObject.h"
20 #include "TVector2.h"
21 #include "AliESDtrack.h"
22
23 using namespace std;
24
25 class AliFemtoK0Particle  // Reconstructed K0s parameters needed for correlations
26 {
27  public:
28   
29   AliFemtoK0Particle();
30   virtual ~AliFemtoK0Particle();
31   AliFemtoK0Particle(const AliFemtoK0Particle &obj);
32   AliFemtoK0Particle &operator=(const AliFemtoK0Particle &obj);
33  
34   double fMomentum[3];  //v0 momentum
35   double fPt;           //v0 transverse momentum
36   double fMass;         //v0 reconstructed mass
37   short fDaughterID1;   //Daughter (pion) AODtrack ID
38   short fDaughterID2;   //Daughter (pion) AODtrack ID
39   bool fK0;             //if v0 has "good" K0 mass
40   bool fSideLeft;
41   bool fSideRight;
42   bool fSkipShared;
43   double fV0Dca;        //used in v0 selection process
44
45   //for single particle histograms
46   double fDDDca;        //daughter-daughter DCA
47   double fDecayLength;  //v0 decay length
48   double fPosDca;       //positive daughter Dca to prim vert
49   double fNegDca;       //negative ""
50   double fPosPt;        //positive daughter pt
51   double fNegPt;        //negative daughter pt
52   double fPosPhi;       //positive daughter phi
53   double fNegPhi;       //negative daughter phi
54
55   //for separation
56   double fPPos[3];      //Positive daughter momentum
57   double fPNeg[3];      //negative daughter momentum
58   float fPosXYZ[9][3];  //corrected daughter TPC positions
59   float fNegXYZ[9][3];  //corrected daughter TPC positions
60
61   //for event plane
62   double fPhi;
63   double fPhiPsi;
64
65   //for cut check
66   bool fCutPass[4][5];
67
68   ClassDef(AliFemtoK0Particle, 1);
69 };
70
71 class AliFemtoK0Event // like particle_event
72 {
73  public:
74
75   AliFemtoK0Event();
76   virtual ~AliFemtoK0Event();
77   AliFemtoK0Event(const AliFemtoK0Event &obj);
78   AliFemtoK0Event &operator=(const AliFemtoK0Event &obj);
79   
80   int fFillStatus;     //tells AliFemtoK0EventCollection to add event
81   int fNumV0s;         //number of collected v0s in event
82   AliFemtoK0Particle *fK0Particle; //class for K0 parameters needed for CF
83
84   ClassDef(AliFemtoK0Event, 1);
85 };
86
87 class AliFemtoK0EventCollection 
88 {
89   public:
90     AliFemtoK0EventCollection();
91     AliFemtoK0EventCollection(short,int);
92     virtual ~AliFemtoK0EventCollection();
93     AliFemtoK0EventCollection(const AliFemtoK0EventCollection &obj);
94     AliFemtoK0EventCollection &operator=(const AliFemtoK0EventCollection &obj);
95
96     short fBufferSize; //Size of the Event Storage buffer
97     int fLimit;        //Max number of tracks
98     AliFemtoK0Event *fEvt; //event class
99
100     void FIFOShift();  //remove/add event (first in, first out)
101     void SetBufferSize(short a){fBufferSize = a;} //set size of event buffer
102  
103     ClassDef(AliFemtoK0EventCollection, 1);
104 };
105 #endif