Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoEvent.h
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 //  AliFemtoEvent: hold the information specific to the event and a      //
4 //  track list                                                           //
5 //  AliFemtoEvent is the "transient microDST"  Objects of this class are //
6 //   generated from the input data by a Reader, and then presented to    //
7 //   the Cuts of the various active Analyses.                            //
8 //                                                                       //
9 ///////////////////////////////////////////////////////////////////////////
10
11 #ifndef ALIFEMTOEVENT_H
12 #define ALIFEMTOEVENT_H
13
14 #include "AliFemtoTypes.h"
15 #include "AliFemtoTrackCollection.h"
16 #include "AliFemtoV0Collection.h"
17 #include "AliFemtoXiCollection.h"
18 #include "AliFemtoKinkCollection.h"
19
20 class AliFemtoTrackCut;
21 class AliFemtoV0Cut;
22 class AliFemtoXiCut;
23 class AliFemtoKinkCut;
24 class AliEventplane;
25
26 #ifdef __ROOT__
27 // the following encapsulation by malisa 21apr2006
28 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
29 class StMuDst;
30 #endif
31 #endif
32
33 class AliFemtoEvent{
34 public:
35   AliFemtoEvent();
36 #ifdef __ROOT__
37 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
38 //
39 #endif
40 #endif
41   
42   AliFemtoEvent(const AliFemtoEvent& ev, AliFemtoTrackCut* tCut=0, AliFemtoV0Cut* vCut=0,  AliFemtoXiCut* xCut=0, AliFemtoKinkCut* kCut=0); // copy constructor with track and v0 cuts
43   AliFemtoEvent(const AliFemtoEvent& ev); // copy constructor
44   ~AliFemtoEvent();
45   AliFemtoEvent& operator=(const AliFemtoEvent& aEvent);
46
47   unsigned short EventNumber() const;
48   int RunNumber() const;
49   unsigned short NumberOfTracks() const;
50   AliFemtoThreeVector PrimVertPos() const;
51   const double* PrimVertCov() const;
52   AliFemtoV0Collection* V0Collection() const;
53   AliFemtoXiCollection* XiCollection() const;
54   AliFemtoKinkCollection* KinkCollection() const;
55   AliFemtoTrackCollection* TrackCollection() const;
56   double MagneticField() const;
57   bool IsCollisionCandidate() const;
58
59   //functions for alice variables
60   float ZDCN1Energy() const;      
61   float ZDCP1Energy() const;      
62   float ZDCN2Energy() const;      
63   float ZDCP2Energy() const;      
64   float ZDCEMEnergy() const;    
65   unsigned int ZDCParticipants() const; 
66
67   unsigned long int     TriggerMask() const;     
68   unsigned char      TriggerCluster() const;  
69
70   float ReactionPlaneAngle() const;
71   AliEventplane* EP() const;
72   
73   void SetEventNumber(const unsigned short& s);
74   void SetRunNumber(const int& i);
75   void SetNumberOfTracks(const unsigned short& s);
76   void SetNormalizedMult(const int& i);
77   void SetMultiplicityEstimateITSTPC(const unsigned short &s);
78   void SetMultiplicityEstimateTracklets(const unsigned short &s);
79   void SetMultiplicityEstimateITSPure(const unsigned short &s);
80   void SetCentralityV0(const float &c);
81   void SetCentralityFMD(const float &c);
82   void SetCentralitySPD1(const float &c);
83   void SetCentralityTrk(const float &c);
84   void SetSPDMult(const int& i);
85   void SetPrimVertPos(const AliFemtoThreeVector& v);
86   void SetPrimVertCov(const double* v);
87   void SetMagneticField(const double& x);
88   void SetIsCollisionCandidate(const bool& is);
89
90    //functions for alice variables
91   void SetZDCN1Energy(const float& x);      
92   void SetZDCP1Energy(const float& x);      
93   void SetZDCN2Energy(const float& x);      
94   void SetZDCP2Energy(const float& x);      
95   void SetZDCEMEnergy(const float& x);    
96   void SetZDCParticipants(const unsigned int& i);
97   
98   void SetTriggerMask(const unsigned long int& i);     
99   void SetTriggerCluster(const unsigned char& c); 
100
101   void SetReactionPlaneAngle(const float& a);
102   void SetEP(AliEventplane* ep);
103   
104   int UncorrectedNumberOfNegativePrimaries() const;
105   int UncorrectedNumberOfPrimaries() const;
106   int SPDMultiplicity() const;
107
108   unsigned short MultiplicityEstimateITSTPC() const;
109   unsigned short MultiplicityEstimateTracklets() const;
110   unsigned short MultiplicityEstimateITSPure() const;
111
112   float CentralityV0() const;
113   float CentralityFMD() const;
114   float CentralitySPD1() const;
115   float CentralityTrk() const;
116
117 private:
118   unsigned short fEventNumber;           // Event number in file
119   unsigned short fRunNumber;             // run number the event belong to
120   unsigned short fNumberOfTracks;        // total number of TPC tracks
121   int   fNormalizedMult;                 // normalized multiplicity
122   int   fSPDMult;                        // Multiplicity of SPD tracklets
123   unsigned short fEstimateITSTPC;        // Official multiplicity estimate ITS+TPC
124   unsigned short fEstimateTracklets;     // Official multiplicity estimate Tracklets
125   unsigned short fEstimateITSPure;       // Official multiplicity estimate ITS SA
126   float fCentralityV0;                   // Official centrality from V0
127   float fCentralityFMD;                  // Official centrality from FMD
128   float fCentralitySPD1;                 // Official centrality from SPD layer 1
129   float fCentralityTrk;                  // Official centrality from tracks
130   double fMagneticField;                 // magnetic field in Z direction
131   bool fIsCollisionCandidate;            // is collision candidate
132   
133   AliFemtoThreeVector fPrimVertPos;      // primary vertex position
134   double fPrimVertCov[6];                // primary vertex covariances
135   AliFemtoTrackCollection* fTrackCollection; // collection of tracks
136   AliFemtoV0Collection* fV0Collection;   // collection of V0s
137   AliFemtoXiCollection* fXiCollection;   // collection of Xis
138   AliFemtoKinkCollection* fKinkCollection; // collection of kinks
139
140   //for alice changed by Marek Chojnacki
141   float      fZDCN1Energy;      // reconstructed energy in the neutron ZDC
142   float      fZDCP1Energy;      // reconstructed energy in the proton ZDC
143   float      fZDCN2Energy;      // reconstructed energy in the neutron ZDC
144   float      fZDCP2Energy;      // reconstructed energy in the proton ZDC
145   float      fZDCEMEnergy;     // reconstructed energy in the electromagnetic ZDC
146   unsigned int        fZDCParticipants; // number of participants estimated by the ZDC
147   
148   unsigned long int     fTriggerMask;     // Trigger Type (mask)
149   unsigned char      fTriggerCluster;  // Trigger cluster (mask)
150
151   float      fReactionPlaneAngle; // reconstructed reaction plane angle
152   AliEventplane*  fEP; // pointer to full event plane information
153 };
154
155
156
157 #endif