]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/Chaoticity/AliChaoticityEventCollection.h
Adding chaoticity code
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / Chaoticity / AliChaoticityEventCollection.h
1 #ifndef ALICHAOTICITYEVENTCOLLECTION
2 #define ALICHAOTICITYEVENTCOLLECTION
3
4 #include <iostream>
5 #include <string>
6 #include "TH1.h"
7 #include "TH2.h"
8 #include "TH3.h"
9 #include "TBits.h"
10 #include "TObject.h"
11 #include "TVector2.h"
12 #include "AliESDtrack.h"
13
14 using namespace std;
15
16
17 class AliChaoticityTrackStruct{// detector tracks
18   
19  public:
20   AliChaoticityTrackStruct();
21   virtual ~AliChaoticityTrackStruct();
22   AliChaoticityTrackStruct(const AliChaoticityTrackStruct &obj); 
23   AliChaoticityTrackStruct &operator=(const AliChaoticityTrackStruct &obj);
24
25
26   UInt_t fStatus;
27   UInt_t fFiltermap;
28   Int_t fId;
29   Double_t fPhi;
30   Float_t fPt;
31   Float_t fMom;
32   Double_t fP[3];
33   Int_t fCharge;
34   Float_t fEta;
35   Float_t fMass;
36   Float_t fDCAXY;
37   Float_t fDCAZ;
38   Float_t fDCA;
39   Float_t fEaccepted;
40   Short_t fKey;
41   TBits fClusterMap;
42   TBits fSharedMap;
43   Double_t fX[3];
44   Bool_t fTOFhit;
45   Bool_t fElectron;
46   Bool_t fMuon;
47   Bool_t fPion;
48   Bool_t fKaon;
49   Bool_t fProton;
50   Int_t fLabel;// MC
51
52   ClassDef(AliChaoticityTrackStruct, 1);
53 };
54
55 class AliChaoticityPairStruct{// low Qinv pairs
56
57  public:
58   AliChaoticityPairStruct();
59   virtual ~AliChaoticityPairStruct();
60   AliChaoticityPairStruct(const AliChaoticityPairStruct &obj); 
61   AliChaoticityPairStruct &operator=(const AliChaoticityPairStruct &obj);
62
63   Float_t fP1[3];
64   Float_t fP2[3];
65   Float_t fE1;
66   Float_t fE2;
67   Short_t fCharge1;
68   Short_t fCharge2;
69   Int_t fIndex1;
70   Int_t fIndex2;
71   Float_t fQinv;
72   Short_t fKey1;
73   Short_t fKey2;
74   Int_t fLabel1;
75   Int_t fLabel2;
76   Float_t fP1MC[3];
77   Float_t fP2MC[3];
78
79   ClassDef(AliChaoticityPairStruct, 1);
80 };
81
82 class AliChaoticityNormPairStruct{// Norm Qinv pairs
83
84  public:
85   AliChaoticityNormPairStruct();
86   virtual ~AliChaoticityNormPairStruct();
87   AliChaoticityNormPairStruct(const AliChaoticityNormPairStruct &obj); 
88   AliChaoticityNormPairStruct &operator=(const AliChaoticityNormPairStruct &obj);
89
90   Short_t fCharge1;
91   Short_t fCharge2;
92   Int_t fIndex1;
93   Int_t fIndex2;
94   Short_t fKey1;
95   Short_t fKey2;
96
97   ClassDef(AliChaoticityNormPairStruct, 1);
98 };
99
100 class AliChaoticityMCStruct{// MC info
101
102  public:
103   AliChaoticityMCStruct();
104   virtual ~AliChaoticityMCStruct();
105   AliChaoticityMCStruct(const AliChaoticityMCStruct &obj); 
106   AliChaoticityMCStruct &operator=(const AliChaoticityMCStruct &obj);
107
108   Float_t fPx;
109   Float_t fPy;
110   Float_t fPz;
111   Float_t fPtot;
112
113   ClassDef(AliChaoticityMCStruct, 1);
114 };
115
116 class AliChaoticityEventStruct{// like particle_event
117   
118  public:
119   AliChaoticityEventStruct();
120   virtual ~AliChaoticityEventStruct();
121   AliChaoticityEventStruct(const AliChaoticityEventStruct &obj); 
122   AliChaoticityEventStruct &operator=(const AliChaoticityEventStruct &obj);
123
124
125   Int_t fFillStatus;
126   Int_t fNtracks;
127   Int_t fNpairsSE;
128   Int_t fNpairsME;
129   Int_t fMCarraySize;
130   AliChaoticityTrackStruct *fTracks;
131   AliChaoticityPairStruct *fPairsSE;
132   AliChaoticityPairStruct *fPairsME;
133   AliChaoticityMCStruct *fMCtracks;
134
135   ClassDef(AliChaoticityEventStruct, 1);
136 };
137
138
139
140 class AliChaoticityEventCollection {
141   
142   public:
143     AliChaoticityEventCollection();
144     AliChaoticityEventCollection(Short_t,Int_t,Int_t,Bool_t);
145     virtual ~AliChaoticityEventCollection();
146     AliChaoticityEventCollection(const AliChaoticityEventCollection &obj); 
147     AliChaoticityEventCollection &operator=(const AliChaoticityEventCollection &obj);
148    
149     void FIFOShift();
150     void SetBuffSize(Short_t a){fFIFO = a;}
151  
152     Short_t fFIFO; //Size of the Event Storage buffer.
153     Int_t fLimit; //Max number of tracks
154     Int_t fPairLimit; //Max number of lowQ pairs
155
156    AliChaoticityEventStruct *fEvtStr;
157
158    ClassDef(AliChaoticityEventCollection, 1);
159 };
160 #endif