Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 fPhiPsi;
63
64   ClassDef(AliFemtoK0Particle, 1);
65 };
66
67 class AliFemtoK0Event // like particle_event
68 {
69  public:
70
71   AliFemtoK0Event();
72   virtual ~AliFemtoK0Event();
73   AliFemtoK0Event(const AliFemtoK0Event &obj);
74   AliFemtoK0Event &operator=(const AliFemtoK0Event &obj);
75   
76   int fFillStatus;     //tells AliFemtoK0EventCollection to add event
77   int fNumV0s;         //number of collected v0s in event
78   AliFemtoK0Particle *fK0Particle; //class for K0 parameters needed for CF
79
80   ClassDef(AliFemtoK0Event, 1);
81 };
82
83 class AliFemtoK0EventCollection 
84 {
85   public:
86     AliFemtoK0EventCollection();
87     AliFemtoK0EventCollection(short,int);
88     virtual ~AliFemtoK0EventCollection();
89     AliFemtoK0EventCollection(const AliFemtoK0EventCollection &obj);
90     AliFemtoK0EventCollection &operator=(const AliFemtoK0EventCollection &obj);
91
92     short fBufferSize; //Size of the Event Storage buffer
93     int fLimit;        //Max number of tracks
94     AliFemtoK0Event *fEvt; //event class
95
96     void FIFOShift();  //remove/add event (first in, first out)
97     void SetBufferSize(short a){fBufferSize = a;} //set size of event buffer
98  
99     ClassDef(AliFemtoK0EventCollection, 1);
100 };
101 #endif