]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoXi.h
update in Kaon Femto train
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoXi.h
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 // AliFemtoXi: special type of particle desling with the specifics       //
4 // of the Xi type of particle                                            //
5 //                                                                       //
6 ///////////////////////////////////////////////////////////////////////////
7 #ifndef ALIFEMTOXI_H
8 #define ALIFEMTOXI_H
9
10 #include "AliFemtoVector.h" //same as in AliFemtoTrack.h
11 #include "AliFemtoV0.h"
12
13 #ifdef __ROOT__
14 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
15 #include "StStrangeMuDstMaker/StXiMuDst.h"
16 #endif
17 #endif
18
19 class AliFemtoXi : public AliFemtoV0 {
20 public:
21   AliFemtoXi();
22 #ifdef __ROOT__
23 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
24   AliFemtoXi(StXiMuDst&); // from strangeness Xi micro dst structure
25 #endif
26 #endif
27   virtual ~AliFemtoXi(){/* no-op */}
28
29   void UpdateXi();
30   float DecayLengthXi() const;            // 3-d decay distance
31   AliFemtoThreeVector DecayVertexXi() const; // Coordinates of decay vertex
32   float DecayVertexXiX() const;           // Coordinates of decay vertex
33   float DecayVertexXiY() const;           // Coordinates of decay vertex
34   float DecayVertexXiZ() const;           // Coordinates of decay vertex
35   float DcaXiDaughters() const;           // DCA of xi daughters at decay vertex
36   float DcaXiToPrimVertex() const;        // DCA of xi to primary vertex
37   float DcaBacToPrimVertex() const;       // DCA of bachelor  xi daughter to pri vertex
38   AliFemtoThreeVector MomBac() const;        // Momentum components of bac. daughter
39   float MomBacX() const;                  // Momentum components of bac. daughter
40   float MomBacY() const;                  // Momentum components of bac. daughter
41   float MomBacZ() const;                  // Momentum components of bac. daughter
42
43   int   TpcHitsBac() const;               // Number of TPC hits on bac. daughter
44   unsigned long TrackTopologyMapBac(unsigned int i) const;
45
46   AliFemtoThreeVector MomXi() const ;        // Momentum components of Xi
47   float MomXiX() const ;                  // Momentum components of Xi
48   float MomXiY() const ;                  // Momentum components of Xi
49   float MomXiZ() const ;                  // Momentum components of Xi
50   float AlphaXi() const ;                 // Armenteros-Podolanski variable
51   float PtArmXi() const ;                 // Armenteros-Podolanski variable
52   float EXi() const ;                     // Energy assuming xi hypothesis                   
53   float EOmega() const ;                  // Energy assuming omega hypothesis                
54   float EBacKaon() const ;                // Energy of bac. daughter assuming kaon           
55   float EBacPion() const ;                // Energy of bac. daughter assuming pion           
56   float MassXi() const ;                  // Mass assuming Xi hypothesis                     
57   float MassOmega() const ;               // Mass assuming Omega hypothesis                  
58   float RapXi() const ;                   // Rapidity assuming (anti) xi                     
59   float RapOmega() const ;                // Rapidity assuming (anti) omega                  
60   float CTauXi() const ;                  // Lifetime (ctau) const assuming (anti) xi        
61   float CTauOmega() const ;               // Lifetime (ctau) const assuming (anti) omega     
62   float PtXi() const ;                    // Transverse momentum                             
63   float PtotXi() const ;                  // Total momentum                                  
64   float PtBac() const ;                   // Transverse momentum of bac. daughter            
65   float PtotBac() const ;                 // Total momentum of bac. daughter                 
66   float DedxBac() const;                  // dedx of Bac track                               
67   unsigned short   IdBac() const;         // Id of bac. track                                
68   unsigned short   KeyBac() const;        // Id of bac. track                                
69
70   void SetdecayLengthXi(const float x);  
71   void SetdecayVertexXi(const AliFemtoThreeVector v);  
72   void SetdecayVertexXiX(const float x);
73   void SetdecayVertexXiY(const float x);
74   void SetdecayVertexXiZ(const float x);
75   void SetdcaXiDaughters(const float x); 
76   void SetdcaXiToPrimVertex(const float x);  
77   void SetdcaBacToPrimVertex(const float x); 
78   void SetmomBac(const AliFemtoThreeVector v);  
79   void SetmomBacX(const float x);  
80   void SetmomBacY(const float x);  
81   void SetmomBacZ(const float x);  
82
83   void SettpcHitsBac(const int& word);      
84
85   void SetTrackTopologyMapBac(unsigned int word, const unsigned long& m);
86
87   void SetmomXi( AliFemtoThreeVector v);
88   void SetmomXiX( float x);
89   void SetmomXiY( float x);
90   void SetmomXiZ( float x);
91   void SetalphaXi( float x);       
92   void SetptArmXi( float x);       
93   void SeteXi( float x);     
94   void SeteOmega( float x);    
95   void SeteBacPion( float x);  
96   void SeteBacKaon( float x);    
97   void SetmassXi( float x);  
98   void SetmassOmega( float x);
99   void SetrapXi( float x);    
100   void SetrapOmega( float x);   
101   void SetcTauXi( float x);   
102   void SetcTauOmega( float x);  
103   void SetptXi( float x);         
104   void SetptotXi( float x);       
105   void SetptBac( float x);        
106   void SetptotBac( float x);      
107   void SetidBac(const unsigned short& s);
108   void SetdedxBac(float x);
109   void SetkeyBac(const unsigned short& s);
110
111
112 protected: 
113   int   fCharge;                           // Charge                
114   float fDecayLengthXi;                    // Decay Length of th Xi
115   AliFemtoThreeVector fDecayVertexXi;      // Xi decay vertex location
116   float fDcaXiDaughters;                   // Dca of Xi daughters
117   float fDcaXiToPrimVertex;                // Dca of Xi to primary vertex
118   float fDcaBachelorToPrimVertex;          // Dca of bachelor to primary vertex
119   AliFemtoThreeVector fMomBachelor;        // Momentum of the bachelor
120
121   unsigned int   fTopologyMapBachelor[2];  // TPC topology map for the bachelor
122   unsigned short fKeyBachelor;             // Unique key for the bachelor
123
124   int   fTpcHitsBac;                       // Number of TPC hits for bachelor
125
126   float fChi2Xi;                           // Fit quality for Xi
127   float fClXi;                             // Confidence level for Xi
128   float fChi2Bachelor;                     // Fit quality for bachelor
129   float fClBachelor;                       // Confidence level for bachelor
130
131   float fDedxBachelor;                     // dEdx for bachelor
132   unsigned short fNufDedxBachelor;         // dEdx for bachelor
133
134   // the following variables are not in the persistent version and can be calculated via UpdateXi();
135   AliFemtoThreeVector fMomXi; // Momentum of the Xi
136   float fAlphaXi;             // Armenteros-Podolanski variable
137   float fPtArmXi;             // Armenteros-Podolanski variable
138
139   float fEXi;                 // Energy assuming xi hypothesis               
140   float fEOmega;              // Energy assuming omega hypothesis                    
141   float fEBacPion;            // Energy of bac. daughter assuming kaon       
142   float fEBacKaon;            // Energy of bac. daughter assuming pion       
143   float fMassXi;              // Mass assuming Xi hypothesis                 
144   float fMassOmega;           // Mass assuming Omega hypothesis              
145   float fRapXi;               // Rapidity assuming (anti) xi                 
146   float fRapOmega;            // Rapidity assuming (anti) omega              
147   float fCTauXi;              // Lifetime (ctau) const assuming (anti) xi            
148   float fCTauOmega;           // Lifetime (ctau) const assuming (anti) omega     
149   float fPtXi;                // Transverse momentum                         
150   float fPtotXi;              // Total momentum                              
151   float fPtBac;               // Transverse momentum of bac. daughter        
152   float fPtotBac;             // Total momentum of bac. daughter                     
153
154   unsigned short   fKeyBac;   // Key of bac. track                                   
155 };
156
157 inline float AliFemtoXi::DecayLengthXi() const { return fDecayLengthXi; }
158 inline AliFemtoThreeVector AliFemtoXi::DecayVertexXi() const { return fDecayVertexXi; } 
159 inline float AliFemtoXi::DecayVertexXiX() const { return fDecayVertexXi.x(); } 
160 inline float AliFemtoXi::DecayVertexXiY() const { return fDecayVertexXi.y(); } 
161 inline float AliFemtoXi::DecayVertexXiZ() const { return fDecayVertexXi.z(); } 
162 inline float AliFemtoXi::DcaXiDaughters() const { return fDcaXiDaughters; }
163 inline float AliFemtoXi::DcaXiToPrimVertex() const { return fDcaXiToPrimVertex; }
164 inline float AliFemtoXi::DcaBacToPrimVertex() const { return fDcaBachelorToPrimVertex; }
165 inline AliFemtoThreeVector AliFemtoXi::MomBac() const { return fMomBachelor; }
166 inline float AliFemtoXi::MomBacX() const { return fMomBachelor.x(); }
167 inline float AliFemtoXi::MomBacY() const { return fMomBachelor.y(); }
168 inline float AliFemtoXi::MomBacZ() const { return fMomBachelor.z(); }
169 inline AliFemtoThreeVector AliFemtoXi::MomXi() const { return fMomXi; }
170 inline float AliFemtoXi::MomXiX() const { return fMomXi.x(); }
171 inline float AliFemtoXi::MomXiY() const { return fMomXi.y(); }
172 inline float AliFemtoXi::MomXiZ() const { return fMomXi.z(); }
173 inline float AliFemtoXi::AlphaXi() const { return fAlphaXi; }
174 inline float AliFemtoXi::PtArmXi() const {return fPtArmXi;}
175 inline float AliFemtoXi::EXi() const {return fEXi;}
176 inline float AliFemtoXi::EOmega() const {return fEOmega;}
177 inline float AliFemtoXi::EBacPion() const {return fEBacPion;}
178 inline float AliFemtoXi::EBacKaon() const {return fEBacKaon;}
179 inline float AliFemtoXi::MassXi() const {return fMassXi;}
180 inline float AliFemtoXi::MassOmega() const {return fMassOmega;}
181 inline float AliFemtoXi::RapXi() const {return fRapXi;}
182 inline float AliFemtoXi::RapOmega() const {return fRapOmega;}
183 inline float AliFemtoXi::CTauXi() const {return fCTauXi;}
184 inline float AliFemtoXi::CTauOmega() const {return fCTauOmega;}
185 inline float AliFemtoXi::PtXi() const {return fPtXi;}
186 inline float AliFemtoXi::PtotXi() const {return fPtotXi;}
187 inline float AliFemtoXi::PtBac() const {return fPtBac;}
188 inline float AliFemtoXi::PtotBac() const {return fPtotBac;}
189 inline int   AliFemtoXi::TpcHitsBac() const
190              { return fTpcHitsBac; }
191 inline float AliFemtoXi::DedxBac() const {return fDedxBachelor;}
192
193 inline unsigned long    AliFemtoXi::TrackTopologyMapBac(unsigned int word) const { return fTopologyMapBachelor[word]; }
194 inline unsigned short   AliFemtoXi::IdBac() const { return fKeyBac; }
195 inline unsigned short   AliFemtoXi::KeyBac() const { return fKeyBac; }
196
197 inline void AliFemtoXi::SetdecayLengthXi(const float x){ fDecayLengthXi= x;}   
198 inline void AliFemtoXi::SetdecayVertexXiX(const float x){ fDecayVertexXi.SetX(x);}
199 inline void AliFemtoXi::SetdecayVertexXiY(const float x){ fDecayVertexXi.SetY(x);}
200 inline void AliFemtoXi::SetdecayVertexXiZ(const float x){ fDecayVertexXi.SetZ(x);}
201 inline void AliFemtoXi::SetdecayVertexXi(const AliFemtoThreeVector v){ fDecayVertexXi = v; }
202 inline void AliFemtoXi::SetdcaXiDaughters(const float x){fDcaXiDaughters= x;} 
203 inline void AliFemtoXi::SetdcaXiToPrimVertex(const float x){fDcaXiToPrimVertex= x;}   
204 inline void AliFemtoXi::SetdcaBacToPrimVertex(const float x){ fDcaBachelorToPrimVertex = x;} 
205 inline void AliFemtoXi::SetmomBac(const AliFemtoThreeVector v){fMomBachelor = v; }
206 inline void AliFemtoXi::SetmomBacX(const float x){fMomBachelor.SetX(x);}
207 inline void AliFemtoXi::SetmomBacY(const float x){fMomBachelor.SetY(x);}
208 inline void AliFemtoXi::SetmomBacZ(const float x){fMomBachelor.SetZ(x);}
209 inline void AliFemtoXi::SetTrackTopologyMapBac(unsigned int word, const unsigned long& m){fTopologyMapBachelor[word]=m;} 
210 inline void AliFemtoXi::SetmomXi(AliFemtoThreeVector v){fMomXi= v; }
211 inline void AliFemtoXi::SetmomXiX(const float x){fMomXi.SetX(x);}
212 inline void AliFemtoXi::SetmomXiY(const float x){fMomXi.SetY(x);}
213 inline void AliFemtoXi::SetmomXiZ(const float x){fMomXi.SetZ(x);}
214
215 inline void AliFemtoXi::SetalphaXi( float x){fAlphaXi= x;}
216 inline void AliFemtoXi::SetptArmXi( float x){fPtArmXi = x;}
217 inline void AliFemtoXi::SeteXi( float x){fEXi= x;}       
218 inline void AliFemtoXi::SeteOmega( float x){fEOmega= x;}
219 inline void AliFemtoXi::SeteBacPion( float x){fEBacPion= x;}
220 inline void AliFemtoXi::SeteBacKaon( float x){fEBacKaon= x;}
221 inline void AliFemtoXi::SetmassXi( float x){fMassXi = x;} 
222 inline void AliFemtoXi::SetmassOmega( float x){fMassOmega= x;}  
223 inline void AliFemtoXi::SetrapXi( float x){fRapXi= x;}
224 inline void AliFemtoXi::SetrapOmega( float x){fRapOmega = x;}   
225 inline void AliFemtoXi::SetcTauXi( float x){fCTauXi = x;}   
226 inline void AliFemtoXi::SetcTauOmega( float x){fCTauOmega = x;}   
227 inline void AliFemtoXi::SetptXi( float x){fPtXi = x;}          
228 inline void AliFemtoXi::SetptotXi( float x){fPtotXi = x;}
229 inline void AliFemtoXi::SetptBac( float x){fPtBac = x;}
230 inline void AliFemtoXi::SetptotBac( float x){fPtotBac = x;}    
231 inline void AliFemtoXi::SetidBac(const unsigned short& s){ fKeyBac= s;}
232 inline void AliFemtoXi::SetkeyBac(const unsigned short& s){ fKeyBac= s;}
233 inline void AliFemtoXi::SettpcHitsBac(const int& i){fTpcHitsBac=i;} 
234 inline void AliFemtoXi::SetdedxBac(float x){fDedxBachelor=x;}
235
236 #endif
237
238
239 /***********************************************************************
240  *
241  * $Log$
242  * Revision 1.1.2.1  2007/10/05 09:38:17  akisiel
243  * Fix stray colons
244  *
245  * Revision 1.1  2007/05/16 10:22:12  akisiel
246  * Making the directory structure of AliFemto flat. All files go into one common directory
247  *
248  * Revision 1.2  2007/05/03 09:42:29  akisiel
249  * Fixing Effective C++ warnings
250  *
251  * Revision 1.1.1.1  2007/04/25 15:38:41  panos
252  * Importing the HBT code dir
253  *
254  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
255  * First version on CVS
256  *
257  * Revision 1.3  2003/09/02 17:58:33  perev
258  * gcc 3.2 updates + WarnOff
259  *
260  * Revision 1.2  2001/12/05 15:10:33  laue
261  * Boris' updates (mainly access functions)
262  *
263  *
264  ***********************************************************************/
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280