]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoV0.h
Updates for the V0 and deta/dphi analysis
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoV0.h
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 // AliFemtoV0: special type of particle desling with the specifics       //
4 // of the V0 type of particle
5 //                                                                       //
6 ///////////////////////////////////////////////////////////////////////////
7 #ifndef ALIFEMTOV0_H
8 #define ALIFEMTOV0_H
9
10 #include "AliFemtoTypes.h" //same as in AliFemtoTrack.h
11 #include "AliFmPhysicalHelixD.h" // Gael 12 Sept 02
12 #include "AliFemtoThreeVector.h"
13 #include "TBits.h"
14 #ifdef __ROOT__
15 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
16 #include "StStrangeMuDstMaker/StV0MuDst.h"
17 #endif
18 #endif
19 /* Th stuff */
20 #include "AliFemtoHiddenInfo.h"
21 /***/
22
23 class AliFemtoV0 {
24 public:
25   AliFemtoV0();
26   AliFemtoV0(const AliFemtoV0& v); // copy constructor
27 #ifdef __ROOT__
28 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
29   AliFemtoV0( StV0MuDst&); // from strangeness V0 micro dst structure
30 #endif
31 #endif
32   virtual ~AliFemtoV0(){if(fHiddenInfo) delete fHiddenInfo;}
33   AliFemtoV0& operator=(const AliFemtoV0& aV0);
34
35
36   float DecayLengthV0() const;       // 3-d decay distance                                               
37   AliFemtoThreeVector DecayVertexV0() const; // Coordinates of decay vertex                              
38   AliFemtoThreeVector PrimaryVertex() const; // Coordinates of primary vertex                            
39   float DecayVertexV0X() const; // Coordinates of decay vertex                                           
40   float DecayVertexV0Y() const; // Coordinates of decay vertex                                           
41   float DecayVertexV0Z() const; // Coordinates of decay vertex                                           
42   float DcaV0Daughters() const;      // DCA of v0 daughters at Decay vertex                              
43   float DcaV0ToPrimVertex() const;   // DCA of v0 to primary vertex                                      
44   float DcaPosToPrimVertex() const;  // DCA of pos v0 daughter to pri vertex                             
45   float DcaNegToPrimVertex() const;  // DCA of neg v0 daughter to pri vertex                             
46   AliFemtoThreeVector MomPos() const;   // Momentum components of pos. daughter                          
47   float MomPosX() const;   // Momentum components of pos. daughter                                       
48   float MomPosY() const;   // Momentum components of pos. daughter                                       
49   float MomPosZ() const;   // Momentum components of pos. daughter                                       
50   AliFemtoThreeVector MomNeg() const;   // Momentum components of neg. daughter                          
51   float MomNegX() const;   // Momentum components of neg. daughter                                       
52   float MomNegY() const;   // Momentum components of neg. daughter                                       
53   float MomNegZ() const;   // Momentum components of neg. daughter                                       
54         
55   float EtaPos() const;//Pseudorapidity V0
56   float EtaNeg() const; //Pseudorapidity V0
57   int TPCNclsPos() const;
58   int TPCNclsNeg() const;
59   const TBits& TPCclustersPos() const;
60   const TBits& TPCclustersNeg() const;
61   const TBits& TPCsharingPos() const;
62   const TBits& TPCsharingNeg() const;
63   int NdofPos() const;
64   int NdofNeg() const;
65   unsigned long StatusPos() const;
66   unsigned long StatusNeg() const;
67
68   
69   int   TpcHitsPos() const;          // Number of TPC hits on pos. daughter                              
70   int   TpcHitsNeg() const;          // Number of TPC hits on neg. daughter                              
71   unsigned long TrackTopologyMapPos(unsigned int word) const;                                            
72   unsigned long TrackTopologyMapNeg(unsigned int word) const;                                            
73                                                                                                          
74   AliFemtoThreeVector MomV0() const ;    // Momentum components of V0   
75   double EtaV0() const ;// Pseudorapidity V0
76   double PhiV0() const ;// Phi V0
77
78   double YV0() const;                    
79   float MomV0X() const ;    // Momentum components of V0                                                 
80   float MomV0Y() const ;    // Momentum components of V0                                                 
81   float MomV0Z() const ;    // Momentum components of V0                                                 
82   float AlphaV0() const ;             // Armenteros-Podolanski variable                                  
83   float PtArmV0() const ;            // Armenteros-Podolanski variable                                   
84   float ELambda() const ;             // Energy assuming lambda hypothesis                               
85   float EK0Short() const ;            // Energy assuming k-short hypothesis                              
86   float EPosProton() const ;          // Energy of pos. daughter assuming proton                         
87   float EPosPion() const ;            // Energy of pos. daughter assuming pion                           
88   float ENegProton() const ;          // Energy of neg. daughter assuming antiproton                     
89   float ENegPion() const ;            // Energy of neg. daughter assuming pion                           
90   float MassLambda() const ;          // Mass assuming lambda hypothesis                                 
91   float MassAntiLambda() const ;      // Mass assuming antilambda hypothesis                             
92   float MassK0Short() const ;         // Mass assuming k-short hypothesis                                
93   float RapLambda() const ;           // Rapidity assuming (anti) constlambda                            
94   float RapK0Short() const ;          // Rapidity assuming k-short                                       
95   float CTauLambda() const ;          // Lifetime (ctau) const assuming (anti) constlambda               
96   float CTauK0Short() const ;         // Lifetime (ctau) const assuming k-short                          
97   float PtV0() const ;                // Transverse momentum                                             
98   float PtotV0() const ;              // Total momentum                 
99   double CosPointingAngle() const;
100   float PtPos() const ;               // Transverse momentum of pos. daughter                            
101   float PtotPos() const ;             // Total momentum of pos. daughter                                 
102   float DedxPos() const;              // dedx of Positive track                                          
103   float NumdedxPos() const;                                                                              
104 // number of hits in dE/dX track of pos. daughter--Gael04Fev 2002                                        
105   float ErrdedxPos() const;                                                                              
106 // error on dedx of Positive track--Gael04Fev 2002                                                       
107   float LendedxPos() const;                                                                              
108 // Length of dE/dX track of pos. daughter--Gael04Fev 2002                                                
109   float PseudoRapPos() const;                                                                            
110 // Length of dE/dX track of neg. daughter--Gael04Fev 2002                                                
111                                                                                                          
112   float PtNeg() const ;               // Transverse momentum of neg. daughter                            
113   float PtotNeg() const ;             // Total momentum of neg. daughter                                 
114   float DedxNeg() const;              // dedx of Negative track                                          
115   float NumdedxNeg() const;                                                                              
116 // number of hits in dE/dX track of neg. daughter--Gael04Fev 2002                                        
117   float ErrdedxNeg() const;                                                                              
118 // error on dedx of Negative track--Gael04Fev 2002                                                       
119   float LendedxNeg() const;                                                                              
120 // Length of dE/dX track of neg. daughter--Gael04Fev 2002                                                
121   float PseudoRapNeg() const;                                                                            
122 // Length of dE/dX track of neg. daughter--Gael04Fev 2002                                                
123                                                                                                          
124   int   IdNeg() const;               // Id of negative track                                     
125   int   IdPos() const;               // Id of positive track                                     
126   int   KeyNeg() const;               // Id of negative track                            
127   int   KeyPos() const;               // Id of positive track
128
129   float PosNSigmaTPCK() const ;
130   float PosNSigmaTPCPi() const ;
131   float PosNSigmaTPCP() const ;
132   float NegNSigmaTPCK() const ;
133   float NegNSigmaTPCPi() const ;
134   float NegNSigmaTPCP() const ;
135
136   float PosNSigmaTOFK() const ;
137   float PosNSigmaTOFPi() const ;
138   float PosNSigmaTOFP() const ;
139   float NegNSigmaTOFK() const ;
140   float NegNSigmaTOFPi() const ;
141   float NegNSigmaTOFP() const ;
142
143
144
145   bool OnFlyStatusV0() const;
146                                                                                                          
147   const AliFmPhysicalHelixD& HelixPos() const; // Gael 12 Sept 02                                        
148   const AliFmPhysicalHelixD& HelixNeg() const; // Gael 12 Sept 02
149
150
151   AliFemtoThreeVector NominalTpcEntrancePointPos() const;
152   AliFemtoThreeVector NominalTpcPointPos(int i);
153   AliFemtoThreeVector NominalTpcExitPointPos() const;
154   AliFemtoThreeVector NominalTpcEntrancePointNeg() const;
155   AliFemtoThreeVector NominalTpcPointNeg(int i);
156   AliFemtoThreeVector NominalTpcExitPointNeg() const;                                   
157
158   void UpdateV0(); // Fills derived info
159   void SetdecayLengthV0(const float x);  
160   void SetdecayVertexV0(const AliFemtoThreeVector v);  
161   void SetdecayVertexV0X(const float x);
162   void SetdecayVertexV0Y(const float x);
163   void SetdecayVertexV0Z(const float x);
164   void SetdcaV0Daughters(const float x); 
165   void SetdcaV0ToPrimVertex(const float x);  
166   void SetdcaPosToPrimVertex(const float x); 
167   void SetdcaNegToPrimVertex(const float x); 
168   void SetmomPos(const AliFemtoThreeVector v);  
169   void SetmomPosX(const float x);  
170   void SetmomPosY(const float x);  
171   void SetmomPosZ(const float x);  
172   void SetmomNeg(const AliFemtoThreeVector v);  
173   void SetmomNegX(const float x);  
174   void SetmomNegY(const float x);  
175   void SetmomNegZ(const float x);  
176
177   void SetEtaPos(const float x);
178   void SetEtaNeg(const float x); 
179   void SetTPCNclsPos(const int x);
180   void SetTPCNclsNeg(const int x);
181   void SetTPCclustersPos(const TBits& x);
182   void SetTPCclustersNeg(const TBits& x);
183   void SetTPCsharingPos(const TBits& x);
184   void SetTPCsharingNeg(const TBits& x);
185   void SetNdofPos(const int x);
186   void SetNdofNeg(const int x);
187   void SetStatusPos(const unsigned long x);
188   void SetStatusNeg(const unsigned long x);
189
190   void SettpcHitsPos(const int& i);      
191   void SettpcHitsNeg(const int& i);      
192
193   void SetTrackTopologyMapPos(unsigned int word, const unsigned long& m);
194   void SetTrackTopologyMapNeg(unsigned int word, const unsigned long& m);      
195
196   void SetmomV0( AliFemtoThreeVector v);
197   void SetEtaV0 (double x);
198   void SetPhiV0 (double x);
199   void SetYV0(double x);
200   void SetmomV0X( float x);
201   void SetmomV0Y( float x);
202   void SetmomV0Z( float x);
203   void SetalphaV0( float x);       
204   void SetptArmV0( float x);       
205   void SeteLambda( float x);     
206   void SeteK0Short( float x);    
207   void SetePosProton( float x);  
208   void SetePosPion( float x);    
209   void SeteNegProton( float x);  
210   void SeteNegPion( float x);    
211   void SetmassLambda( float x);  
212   void SetmassAntiLambda( float x);
213   void SetmassK0Short( float x);  
214   void SetrapLambda( float x);    
215   void SetrapK0Short( float x);   
216   void SetcTauLambda( float x);   
217   void SetcTauK0Short( float x);  
218   void SetptV0( float x);         
219   void SetptotV0( float x);       
220   void SetptPos( float x);        
221   void SetptotPos( float x);      
222   void SetptNeg( float x);        
223   void SetptotNeg( float x);
224   void SetidNeg(const int& i);
225   void SetidPos(const int& i);
226   void SetdedxNeg(float x);
227   void SeterrdedxNeg(float x);//Gael 04Fev2002
228   void SetlendedxNeg(float x);//Gael 04Fev2002
229   void SetpseudoRapNeg(float x);//Gael 04Fev2002
230   void SetdedxPos(float x);
231   void SeterrdedxPos(float x);//Gael 04Fev2002
232   void SetlendedxPos(float x);//Gael 04Fev2002
233   void SetpseudoRapPos(float x);//Gael 04Fev2002
234   void SetkeyNeg(const int& i);
235   void SetkeyPos(const int& i);
236   void SetCosPointingAngle(double x);
237      
238   void SetOnFlyStatusV0(bool x);
239   void SetHelixPos(const AliFmPhysicalHelixD& h); // Gael 12 Sept 02
240   void SetHelixNeg(const AliFmPhysicalHelixD& h); // Gael 12 Sept 02
241
242   void SetPosNSigmaTPCK(float x);
243   void SetPosNSigmaTPCPi(float x);
244   void SetPosNSigmaTPCP(float x);
245   void SetNegNSigmaTPCK(float x);
246   void SetNegNSigmaTPCPi(float x);
247   void SetNegNSigmaTPCP(float x);
248
249   void SetPosNSigmaTOFK(float x);
250   void SetPosNSigmaTOFPi(float x);
251   void SetPosNSigmaTOFP(float x);
252   void SetNegNSigmaTOFK(float x);
253   void SetNegNSigmaTOFPi(float x);
254   void SetNegNSigmaTOFP(float x);
255
256   void SetNominalTpcEntrancePointPos(AliFemtoThreeVector x);
257   void SetNominalTpcPointPos(AliFemtoThreeVector *x);
258   void SetNominalTpcExitPointPos(AliFemtoThreeVector x);
259   void SetNominalTpcEntrancePointNeg(AliFemtoThreeVector x);
260   void SetNominalTpcPointNeg(AliFemtoThreeVector *x);
261   void SetNominalTpcExitPointNeg(AliFemtoThreeVector x);
262
263   void SetTPCMomentumPos(double x);
264   void SetTPCMomentumNeg(double x);
265   double GetTPCMomentumPos() const;
266   double GetTPCMomentumNeg() const;
267
268   void SetTOFProtonTimePos(double x);
269   void SetTOFPionTimePos(double x);
270   void SetTOFKaonTimePos(double x);
271   double TOFProtonTimePos() const;
272   double TOFPionTimePos() const;
273   double TOFKaonTimePos() const;
274
275   void SetTOFProtonTimeNeg(double x);
276   void SetTOFPionTimeNeg(double x);
277   void SetTOFKaonTimeNeg(double x);
278   double TOFProtonTimeNeg() const;
279   double TOFPionTimeNeg() const;
280   double TOFKaonTimeNeg() const;
281
282   void SetImpactDprimPos(const float& x);
283   void SetImpactDweakPos(const float& x);
284   void SetImpactDmatPos(const float& x);
285   float ImpactDprimPos()const;
286   float ImpactDweakPos()const;
287   float ImpactDmatPos()const;
288   void SetImpactDprimNeg(const float& x);
289   void SetImpactDweakNeg(const float& x);
290   void SetImpactDmatNeg(const float& x);
291   float ImpactDprimNeg()const;
292   float ImpactDweakNeg()const;
293   float ImpactDmatNeg()const;
294
295   void SetprimaryVertex(const AliFemtoThreeVector v);//Gael 24 Sept 02
296   /* Th stuff */
297   void SetHiddenInfo(AliFemtoHiddenInfo* aHiddenInfo);
298   bool ValidHiddenInfo() const;
299   // Fab private : (official : const AliFemtoHiddenInfo* HiddenInfo() const;
300   AliFemtoHiddenInfo* GetHiddenInfo() const;
301   /***/
302
303 protected:
304   float fDecayLengthV0;                     // 3-d decay distance                                                \\ V0 decay length                                                                  
305   AliFemtoThreeVector fDecayVertexV0;       // Coordinates of decay vertex                               
306   AliFemtoThreeVector fPrimaryVertex;       // Coordinates of primary vertex                             
307   float fDcaV0Daughters;                    // DCA of v0 daughters at Decay vertex                               
308   float fDcaV0ToPrimVertex;                 // DCA of v0 to primary vertex                                       
309   float fDcaPosToPrimVertex;                // DCA of pos v0 daughter to pri vertex                              
310   float fDcaNegToPrimVertex;                // DCA of neg v0 daughter to pri vertex                              
311   AliFemtoThreeVector fMomPos;              // Momentum components of pos. daughter                              
312   AliFemtoThreeVector fMomNeg;              // Momentum components of neg. daughter                              
313
314   unsigned long  fTrackTopologyMapPos[2];   // Topology map for positive daughter
315   unsigned long  fTrackTopologyMapNeg[2];   // Topology map for negative daughter
316                                             
317   int   fTpcHitsPos;                        // Number of TPC hits for positive daughter
318   int   fTpcHitsNeg;                        // Number of TPC hits for negative daughter
319                                             
320   bool  fOnFlyStatusV0;
321   float fChi2V0;                            // Fit quality for V0
322   float fClV0;                              // Confidence level for V0
323   float fChi2Pos;                           // Fit quality for positive daughter
324   float fClPos;                             // Confidence level for positive daughter
325   float fChi2Neg;                           // Fit quality for negative daughter
326   float fClNeg;                             // Confidence level for negative daughter
327   double fCosPointingAngle;
328                                             
329   float fDedxPos;                           // dEdx positive daughter       
330   float fErrDedxPos;                        // dEdx error positive daughter 
331   float fLenDedxPos;                        // dEdx length positive daughter
332                                             
333   float fDedxNeg;                           // dEdx negative daughter       
334   float fErrDedxNeg;                        // dEdx error negative daughter 
335   float fLenDedxNeg;                        // dEdx length negative daughter
336                                             
337   unsigned short fNufDedxPos;               // Number of dEdx points positive
338   unsigned short fNufDedxNeg;               // Number of dEdx points negative
339                                             
340   AliFmPhysicalHelixD fHelixPos;            // Helix for positive
341   AliFmPhysicalHelixD fHelixNeg;            // Helix for negative
342                                             
343   AliFemtoThreeVector fMomV0;               // Momentum of the V0
344   double fEtaV0;                            // Pseudorapidity of the V0
345   double fPhiV0;                            // Phi angle of the V0
346   double fYV0;                              // Rapidity of the V0;
347   float fAlphaV0;                           // Armenteros-Podolanski variable                                    
348   float fPtArmV0;                           // Armenteros-Podolanski variable                                    
349   float fELambda;                           // Energy assuming lambda hypothesis                                 
350   float fEK0Short;                          // Energy assuming k-short hypothesis                                
351   float fEPosProton;                        // Energy of pos. daughter assuming proton                   
352   float fEPosPion;                          // Energy of pos. daughter assuming pion                             
353   float fENegProton;                        // Energy of neg. daughter assuming antiproton
354   float fENegPion;                          // Energy of neg. daughter assuming pion
355   float fMassLambda;                        // Mass assuming lambda hypothesis                           
356   float fMassAntiLambda;                    // Mass assuming antilambda hypothesis
357   float fMassK0Short;                       // Mass assuming k-short hypothesis                          
358   float fRapLambda;                         // Rapidity assuming (anti) constlambda                              
359   float fRapK0Short;                        // Rapidity assuming k-short                                         
360   float fCTauLambda;                        // Lifetime (ctau) assuming (anti)lambda             
361   float fCTauK0Short;                       // Lifetime (ctau) assuming k-short                          
362   float fPtV0;                              // Total momentum                                                    
363   float fPtotV0;                            // Transverse momentum                                               
364   float fPtPos;                             // Transverse momentum of pos. daughter                              
365   float fPtotPos;                           // Total momentum of pos. daughter                           
366   float fPtNeg;                             // Transverse momentum of neg. daughter                              
367   float fPtotNeg;                           // Total momentum of neg. daughter
368
369   float fEtaPos;                                    // Eta of positive daughter
370   float fEtaNeg;                                    // Eta of neg. daughter
371   int   fTPCNclsPos;                        // No. of cls of pos daughter
372   int   fTPCNclsNeg;                        // No. of cls of neg daughter
373   TBits fClustersPos;
374   TBits fClustersNeg;
375   TBits fSharingPos;
376   TBits fSharingNeg;
377   int   fNdofPos;                                   // No. of degrees of freedom of the pos. daughter track
378   int   fNdofNeg;                                   // No. of degrees of freedom of the neg. daughter track
379   unsigned long fStatusPos;                         // Status (tpc refit, its refit...)
380   unsigned long fStatusNeg;                         // Status (tpc refit, its refit...)
381
382   float fPosNSigmaTPCK;
383   float fPosNSigmaTPCPi;
384   float fPosNSigmaTPCP;
385   float fNegNSigmaTPCK;
386   float fNegNSigmaTPCPi;
387   float fNegNSigmaTPCP;
388
389   float fPosNSigmaTOFK;
390   float fPosNSigmaTOFPi;
391   float fPosNSigmaTOFP;
392   float fNegNSigmaTOFK;
393   float fNegNSigmaTOFPi;
394   float fNegNSigmaTOFP;
395                                             
396   int   fKeyNeg;                    // Unique key negative
397   int   fKeyPos;                    // Unique key positive
398
399   AliFemtoThreeVector fNominalTpcEntrancePointPos; // Nominal positive daugther track entrance point into TPC
400   AliFemtoThreeVector fNominalTpcPointsPos[9];
401   AliFemtoThreeVector fNominalTpcExitPointPos;     // Nominal positive daughter track exit point from TPC
402   AliFemtoThreeVector fNominalTpcEntrancePointNeg; // Nominal positive daugther track entrance point into TPC
403   AliFemtoThreeVector fNominalTpcPointsNeg[9];
404   AliFemtoThreeVector fNominalTpcExitPointNeg;     // Nominal positive daughter track exit point from TPC
405
406   double fTPCMomentumPos;
407   double fTPCMomentumNeg;
408
409   double fTOFProtonTimePos;
410   double fTOFPionTimePos;
411   double fTOFKaonTimePos;
412   double fTOFProtonTimeNeg;
413   double fTOFPionTimeNeg;
414   double fTOFKaonTimeNeg;
415
416
417   float fImpactDprimPos; //impact parameter in xy plane
418   float fImpactDweakPos; //impact parameter in xy plane
419   float fImpactDmatPos; //impact parameter in xy plane
420   float fImpactDprimNeg; //impact parameter in xy plane
421   float fImpactDweakNeg; //impact parameter in xy plane
422   float fImpactDmatNeg; //impact parameter in xy plane
423
424   /* Th stuff */                            
425   // Fab private : add mutable              
426   mutable AliFemtoHiddenInfo* fHiddenInfo; //! Hidden info
427   /***/                                     
428                                             
429                                                                                                                                  
430 };                                          
431                                             
432 inline float AliFemtoV0::DecayLengthV0() const { return fDecayLengthV0; }
433 inline AliFemtoThreeVector AliFemtoV0::DecayVertexV0() const { return fDecayVertexV0; } 
434 inline AliFemtoThreeVector AliFemtoV0::PrimaryVertex() const { return fPrimaryVertex; }
435 inline float AliFemtoV0::DecayVertexV0X() const { return fDecayVertexV0.x(); } 
436 inline float AliFemtoV0::DecayVertexV0Y() const { return fDecayVertexV0.y(); } 
437 inline float AliFemtoV0::DecayVertexV0Z() const { return fDecayVertexV0.z(); } 
438 inline float AliFemtoV0::DcaV0Daughters() const { return fDcaV0Daughters; }
439 inline float AliFemtoV0::DcaV0ToPrimVertex() const { return fDcaV0ToPrimVertex; }
440 inline float AliFemtoV0::DcaPosToPrimVertex() const { return fDcaPosToPrimVertex; }
441 inline float AliFemtoV0::DcaNegToPrimVertex() const { return fDcaNegToPrimVertex; }
442 inline AliFemtoThreeVector AliFemtoV0::MomPos() const { return fMomPos; }
443 inline float AliFemtoV0::MomPosX() const { return fMomPos.x(); }
444 inline float AliFemtoV0::MomPosY() const { return fMomPos.y(); }
445 inline float AliFemtoV0::MomPosZ() const { return fMomPos.z(); }
446 inline AliFemtoThreeVector AliFemtoV0::MomNeg() const { return fMomNeg; }
447 inline float AliFemtoV0::MomNegX() const { return fMomNeg.x(); }
448 inline float AliFemtoV0::MomNegY() const { return fMomNeg.y(); }
449 inline float AliFemtoV0::MomNegZ() const { return fMomNeg.z(); }
450 inline AliFemtoThreeVector AliFemtoV0::MomV0() const { return fMomV0; }
451 inline double AliFemtoV0::EtaV0() const {return fEtaV0;}
452 inline double AliFemtoV0::PhiV0() const {return fPhiV0;}
453 inline double AliFemtoV0::YV0() const {return fYV0;}
454 inline double AliFemtoV0::CosPointingAngle() const {return fCosPointingAngle;}
455 inline float AliFemtoV0::MomV0X() const { return fMomV0.x(); }
456 inline float AliFemtoV0::MomV0Y() const { return fMomV0.y(); }
457 inline float AliFemtoV0::MomV0Z() const { return fMomV0.z(); }
458 inline float AliFemtoV0::AlphaV0() const { return fAlphaV0; }
459 inline float AliFemtoV0::PtArmV0() const {return fPtArmV0;}
460 inline float AliFemtoV0::ELambda() const {return fELambda;}
461 inline float AliFemtoV0::EK0Short() const {return fEK0Short;}
462 inline float AliFemtoV0::EPosProton() const {return fEPosProton;}
463 inline float AliFemtoV0::EPosPion() const {return fEPosPion;}
464 inline float AliFemtoV0::ENegProton() const {return fENegProton;}
465 inline float AliFemtoV0::ENegPion() const {return fENegPion;}
466 inline float AliFemtoV0::MassLambda() const {return fMassLambda;}
467 inline float AliFemtoV0::MassAntiLambda() const {return fMassAntiLambda;}
468 inline float AliFemtoV0::MassK0Short() const {return fMassK0Short;}
469 inline float AliFemtoV0::RapLambda() const {return fRapLambda;}
470 inline float AliFemtoV0::RapK0Short() const {return fRapK0Short;}
471 inline float AliFemtoV0::CTauLambda() const {return fCTauLambda;}
472 inline float AliFemtoV0::CTauK0Short() const {return fCTauK0Short;}
473 inline float AliFemtoV0::PtV0() const {return fPtV0;}
474 inline float AliFemtoV0::PtotV0() const {return fPtotV0;}
475 inline float AliFemtoV0::PtPos() const {return fPtPos;}
476 inline float AliFemtoV0::PtotPos() const {return fPtotPos;}
477 inline float AliFemtoV0::PtNeg() const {return fPtNeg;}
478 inline float AliFemtoV0::PtotNeg() const {return fPtotNeg;}
479 inline int   AliFemtoV0::TpcHitsPos() const { return fTpcHitsPos; }
480 inline int   AliFemtoV0::TpcHitsNeg() const { return fTpcHitsNeg; }
481 inline float AliFemtoV0::DedxNeg() const {return fDedxNeg;}
482 inline float AliFemtoV0::NumdedxNeg() const {return fNufDedxNeg;} //Gael 04Fev2002
483 inline float AliFemtoV0::ErrdedxNeg() const {return fErrDedxNeg;} //Gael 04Fev2002
484 inline float AliFemtoV0::LendedxNeg() const {return fLenDedxNeg;} //Gael 04Fev2002
485 inline float AliFemtoV0::PseudoRapNeg() const {return fMomNeg.PseudoRapidity();} //Gael 04Fev2002
486 inline float AliFemtoV0::DedxPos() const {return fDedxPos;}
487 inline float AliFemtoV0::NumdedxPos() const {return fNufDedxPos;} //Gael 04Fev2002
488 inline float AliFemtoV0::ErrdedxPos() const {return fErrDedxPos;} //Gael 04Fev2002
489 inline float AliFemtoV0::LendedxPos() const {return fLenDedxPos;} //Gael 04Fev2002
490 inline float AliFemtoV0::PseudoRapPos() const {return fMomPos.PseudoRapidity();} //Gael 04Fev2002
491 inline float AliFemtoV0::EtaPos() const {return fEtaPos;}
492 inline float AliFemtoV0::EtaNeg() const {return fEtaNeg;}
493 inline int   AliFemtoV0::TPCNclsPos() const {return fTPCNclsPos;}
494 inline int   AliFemtoV0::TPCNclsNeg() const {return fTPCNclsNeg;}
495 inline const TBits& AliFemtoV0::TPCclustersPos() const {return fClustersPos;}
496 inline const TBits& AliFemtoV0::TPCclustersNeg() const {return fClustersNeg;}
497 inline const TBits& AliFemtoV0::TPCsharingPos() const {return fSharingPos;}
498 inline const TBits& AliFemtoV0::TPCsharingNeg() const {return fSharingNeg;}
499 inline int   AliFemtoV0::NdofPos() const {return fNdofPos;}
500 inline int   AliFemtoV0::NdofNeg() const {return fNdofNeg;}
501 inline unsigned long AliFemtoV0::StatusPos() const {return fStatusPos;}
502 inline unsigned long AliFemtoV0::StatusNeg() const {return fStatusNeg;}
503
504 inline unsigned long   AliFemtoV0::TrackTopologyMapPos(unsigned int word) const { return fTrackTopologyMapPos[word]; }
505 inline unsigned long   AliFemtoV0::TrackTopologyMapNeg(unsigned int word) const { return fTrackTopologyMapNeg[word]; }
506 inline int   AliFemtoV0::IdNeg() const { return fKeyNeg; } 
507 inline int   AliFemtoV0::KeyNeg() const { return fKeyNeg; }
508 inline int   AliFemtoV0::IdPos() const { return fKeyPos; } 
509 inline int   AliFemtoV0::KeyPos() const { return fKeyPos; }
510 inline bool  AliFemtoV0::OnFlyStatusV0() const {return fOnFlyStatusV0;}
511 inline float AliFemtoV0::PosNSigmaTPCK() const { return fPosNSigmaTPCK; }
512 inline float AliFemtoV0::PosNSigmaTPCPi() const { return fPosNSigmaTPCPi;  }
513 inline float AliFemtoV0::PosNSigmaTPCP() const { return fPosNSigmaTPCP;  }
514 inline float AliFemtoV0::NegNSigmaTPCK() const { return fNegNSigmaTPCK;  }
515 inline float AliFemtoV0::NegNSigmaTPCPi() const { return fNegNSigmaTPCPi;  }
516 inline float AliFemtoV0::NegNSigmaTPCP() const { return fNegNSigmaTPCP;  }
517
518 inline float AliFemtoV0::PosNSigmaTOFK() const { return fPosNSigmaTOFK;  }
519 inline float AliFemtoV0::PosNSigmaTOFPi() const { return  fPosNSigmaTOFPi; }
520 inline float AliFemtoV0::PosNSigmaTOFP() const { return  fPosNSigmaTOFP; }
521 inline float AliFemtoV0::NegNSigmaTOFK() const { return fNegNSigmaTOFK;  }
522 inline float AliFemtoV0::NegNSigmaTOFPi() const { return fNegNSigmaTOFPi;  }
523 inline float AliFemtoV0::NegNSigmaTOFP() const { return fNegNSigmaTOFP;  }
524
525 inline AliFemtoThreeVector AliFemtoV0::NominalTpcEntrancePointPos() const {return fNominalTpcEntrancePointPos;}
526 inline AliFemtoThreeVector AliFemtoV0::NominalTpcExitPointPos() const {return fNominalTpcExitPointPos;}
527 inline AliFemtoThreeVector AliFemtoV0::NominalTpcEntrancePointNeg() const  {return fNominalTpcEntrancePointNeg;}
528 inline AliFemtoThreeVector AliFemtoV0::NominalTpcExitPointNeg() const  {return fNominalTpcExitPointNeg;}
529
530 inline void AliFemtoV0::SetdecayLengthV0(const float x){ fDecayLengthV0= x;}   
531 inline void AliFemtoV0::SetdecayVertexV0X(const float x){ fDecayVertexV0.SetX(x);}
532 inline void AliFemtoV0::SetdecayVertexV0Y(const float x){ fDecayVertexV0.SetY(x);}
533 inline void AliFemtoV0::SetdecayVertexV0Z(const float x){ fDecayVertexV0.SetZ(x);}
534 inline void AliFemtoV0::SetdecayVertexV0(const AliFemtoThreeVector v){ fDecayVertexV0 = v; }
535 inline void AliFemtoV0::SetdcaV0Daughters(const float x){fDcaV0Daughters= x;} 
536 inline void AliFemtoV0::SetdcaV0ToPrimVertex(const float x){fDcaV0ToPrimVertex= x;}   
537 inline void AliFemtoV0::SetdcaPosToPrimVertex(const float x){fDcaPosToPrimVertex = x;} 
538 inline void AliFemtoV0::SetdcaNegToPrimVertex(const float x){fDcaNegToPrimVertex = x;} 
539 inline void AliFemtoV0::SetmomPos(const AliFemtoThreeVector v){fMomPos = v; }
540 inline void AliFemtoV0::SetEtaV0(const double x){fEtaV0=x;}
541 inline void AliFemtoV0::SetPhiV0(const double x){fPhiV0=x;}
542 inline void AliFemtoV0::SetYV0(const double x){fYV0=x;}
543 inline void AliFemtoV0::SetCosPointingAngle(const double x){fCosPointingAngle = x;}
544 inline void AliFemtoV0::SetmomPosX(const float x){fMomPos.SetX(x);}
545 inline void AliFemtoV0::SetmomPosY(const float x){fMomPos.SetY(x);}
546 inline void AliFemtoV0::SetmomPosZ(const float x){fMomPos.SetZ(x);}
547 inline void AliFemtoV0::SetmomNeg(const AliFemtoThreeVector v){fMomNeg = v; }
548 inline void AliFemtoV0::SetmomNegX(const float x){fMomNeg.SetX(x);}
549 inline void AliFemtoV0::SetmomNegY(const float x){fMomNeg.SetY(x);}
550 inline void AliFemtoV0::SetmomNegZ(const float x){fMomNeg.SetZ(x);}
551 inline void AliFemtoV0::SetTrackTopologyMapPos(unsigned int word, const unsigned long& m){fTrackTopologyMapPos[word]=m;} 
552 inline void AliFemtoV0::SetTrackTopologyMapNeg(unsigned int word, const unsigned long& m){fTrackTopologyMapNeg[word]=m;} 
553 inline void AliFemtoV0::SetmomV0(AliFemtoThreeVector v){fMomV0= v; }
554 inline void AliFemtoV0::SetmomV0X(const float x){fMomV0.SetX(x);}
555 inline void AliFemtoV0::SetmomV0Y(const float x){fMomV0.SetY(x);}
556 inline void AliFemtoV0::SetmomV0Z(const float x){fMomV0.SetZ(x);}
557
558 inline void AliFemtoV0::SetalphaV0( float x){fAlphaV0= x;}
559 inline void AliFemtoV0::SetptArmV0( float x){fPtArmV0 = x;}
560 inline void AliFemtoV0::SeteLambda( float x){fELambda= x;}       
561 inline void AliFemtoV0::SeteK0Short( float x){fEK0Short= x;}
562 inline void AliFemtoV0::SetePosProton( float x){fEPosProton= x;}      
563 inline void AliFemtoV0::SetePosPion( float x){fEPosPion= x;}      
564 inline void AliFemtoV0::SeteNegProton( float x){fENegProton= x;} 
565 inline void AliFemtoV0::SeteNegPion( float x){fENegPion= x;}       
566 inline void AliFemtoV0::SetmassLambda( float x){fMassLambda = x;} 
567 inline void AliFemtoV0::SetmassAntiLambda( float x){fMassAntiLambda= x;} 
568 inline void AliFemtoV0::SetmassK0Short( float x){fMassK0Short= x;}  
569 inline void AliFemtoV0::SetrapLambda( float x){fRapLambda= x;}
570 inline void AliFemtoV0::SetrapK0Short( float x){fRapK0Short = x;}   
571 inline void AliFemtoV0::SetcTauLambda( float x){fCTauLambda = x;}   
572 inline void AliFemtoV0::SetcTauK0Short( float x){fCTauK0Short = x;}   
573 inline void AliFemtoV0::SetptV0( float x){fPtV0 = x;}          
574 inline void AliFemtoV0::SetptotV0( float x){fPtotV0 = x;}
575 inline void AliFemtoV0::SetptPos( float x){fPtPos = x;}
576 inline void AliFemtoV0::SetptotPos( float x){fPtotPos = x;}    
577 inline void AliFemtoV0::SetptNeg( float x){ fPtNeg= x;}    
578 inline void AliFemtoV0::SetptotNeg( float x){ fPtotNeg= x;}
579 inline void AliFemtoV0::SetidNeg(const int& s){ fKeyNeg= s;}
580 inline void AliFemtoV0::SetidPos(const int& s){ fKeyPos= s;}
581 inline void AliFemtoV0::SetkeyNeg(const int& s){ fKeyNeg= s;}
582 inline void AliFemtoV0::SetkeyPos(const int& s){ fKeyPos= s;}
583 inline void AliFemtoV0::SettpcHitsPos(const int& i){fTpcHitsPos=i;} 
584 inline void AliFemtoV0::SettpcHitsNeg(const int& i){fTpcHitsNeg=i;}
585 inline void AliFemtoV0::SetdedxNeg(float x){fDedxNeg=x;}
586 inline void AliFemtoV0::SeterrdedxNeg(float x){fErrDedxNeg=x;}//Gael 04Fev2002
587 inline void AliFemtoV0::SetlendedxNeg(float x){fLenDedxNeg=x;}//Gael 04Fev2002
588 inline void AliFemtoV0::SetdedxPos(float x){fDedxPos=x;}
589 inline void AliFemtoV0::SeterrdedxPos(float x){fErrDedxPos=x;}//Gael 04Fev2002
590 inline void AliFemtoV0::SetlendedxPos(float x){fLenDedxPos=x;}//Gael 04Fev2002
591 inline void AliFemtoV0::SetprimaryVertex(const AliFemtoThreeVector v) { fPrimaryVertex = v; }//Gael 24 Sept 02
592          
593 inline void AliFemtoV0::SetEtaPos(float x) {fEtaPos=x;}
594 inline void AliFemtoV0::SetEtaNeg(float x) {fEtaNeg=x;}
595 inline void AliFemtoV0::SetTPCNclsPos(int x) {fTPCNclsPos=x;}
596 inline void AliFemtoV0::SetTPCNclsNeg(int x) {fTPCNclsNeg=x;}
597 inline void AliFemtoV0::SetTPCclustersPos(const TBits& x) {fClustersPos=x;}
598 inline void AliFemtoV0::SetTPCclustersNeg(const TBits& x) {fClustersNeg=x;}
599 inline void AliFemtoV0::SetTPCsharingPos(const TBits& x) {fSharingPos=x;}
600 inline void AliFemtoV0::SetTPCsharingNeg(const TBits& x) {fSharingNeg=x;}
601 inline void AliFemtoV0::SetNdofPos(int x) {fNdofPos=x;}
602 inline void AliFemtoV0::SetNdofNeg(int x) {fNdofNeg=x;}
603 inline void AliFemtoV0::SetStatusPos(unsigned long x) {fStatusPos=x;}
604 inline void AliFemtoV0::SetStatusNeg(unsigned long x) {fStatusNeg=x;}
605 inline void AliFemtoV0::SetOnFlyStatusV0(bool x) {fOnFlyStatusV0=x;}
606             
607 inline void AliFemtoV0::SetPosNSigmaTPCK(float x){ fPosNSigmaTPCK = x; }
608 inline void AliFemtoV0::SetPosNSigmaTPCPi(float x){ fPosNSigmaTPCPi = x;  }
609 inline void AliFemtoV0::SetPosNSigmaTPCP(float x) { fPosNSigmaTPCP = x;  }
610 inline void AliFemtoV0::SetNegNSigmaTPCK(float x) { fNegNSigmaTPCK = x;  }
611 inline void AliFemtoV0::SetNegNSigmaTPCPi(float x){ fNegNSigmaTPCPi = x;  }
612 inline void AliFemtoV0::SetNegNSigmaTPCP(float x) { fNegNSigmaTPCP = x;  }
613
614 inline void AliFemtoV0::SetPosNSigmaTOFK(float x) {  fPosNSigmaTOFK = x;  }
615 inline void AliFemtoV0::SetPosNSigmaTOFPi(float x) { fPosNSigmaTOFPi = x; }
616 inline void AliFemtoV0::SetPosNSigmaTOFP(float x) { fPosNSigmaTOFP = x; }
617 inline void AliFemtoV0::SetNegNSigmaTOFK(float x)  { fNegNSigmaTOFK = x;  }
618 inline void AliFemtoV0::SetNegNSigmaTOFPi(float x)  {fNegNSigmaTOFPi = x;  }
619 inline void AliFemtoV0::SetNegNSigmaTOFP(float x) { fNegNSigmaTOFP = x;  }
620
621 inline void AliFemtoV0::SetNominalTpcEntrancePointPos(AliFemtoThreeVector x) {fNominalTpcEntrancePointPos=x;}
622 inline void AliFemtoV0::SetNominalTpcPointPos(AliFemtoThreeVector *x) {for(int i=0;i<9;i++) fNominalTpcPointsPos[i]=x[i];}
623 inline void AliFemtoV0::SetNominalTpcExitPointPos(AliFemtoThreeVector x) {fNominalTpcExitPointPos=x;}
624 inline void AliFemtoV0::SetNominalTpcEntrancePointNeg(AliFemtoThreeVector x) {fNominalTpcEntrancePointNeg=x;}
625 inline void AliFemtoV0::SetNominalTpcPointNeg(AliFemtoThreeVector *x) {for(int i=0;i<9;i++) fNominalTpcPointsNeg[i]=x[i];}
626 inline void AliFemtoV0::SetNominalTpcExitPointNeg(AliFemtoThreeVector x) {fNominalTpcExitPointNeg=x;}
627
628 inline void AliFemtoV0::SetTPCMomentumPos(double x) {fTPCMomentumPos = x;}
629 inline void AliFemtoV0::SetTPCMomentumNeg(double x) {fTPCMomentumNeg = x;}
630 inline double AliFemtoV0::GetTPCMomentumPos() const {return fTPCMomentumPos;}
631 inline double AliFemtoV0::GetTPCMomentumNeg() const {return fTPCMomentumNeg;}
632
633 inline void AliFemtoV0::SetTOFProtonTimePos(double x) {fTOFProtonTimePos = x;}
634 inline void AliFemtoV0::SetTOFPionTimePos(double x) {fTOFPionTimePos = x;}
635 inline void AliFemtoV0::SetTOFKaonTimePos(double x) {fTOFKaonTimePos = x;}
636 inline double AliFemtoV0::TOFProtonTimePos() const {return fTOFProtonTimePos;}
637 inline double AliFemtoV0::TOFPionTimePos() const {return fTOFPionTimePos;}
638 inline double AliFemtoV0::TOFKaonTimePos() const {return fTOFKaonTimePos;}
639
640 inline void AliFemtoV0::SetTOFProtonTimeNeg(double x) {fTOFProtonTimeNeg = x;}
641 inline void AliFemtoV0::SetTOFPionTimeNeg(double x) {fTOFPionTimeNeg = x;}
642 inline void AliFemtoV0::SetTOFKaonTimeNeg(double x) {fTOFKaonTimeNeg = x;}
643 inline double AliFemtoV0::TOFProtonTimeNeg() const {return fTOFProtonTimeNeg;}
644 inline double AliFemtoV0::TOFPionTimeNeg() const {return fTOFPionTimeNeg;}
645 inline double AliFemtoV0::TOFKaonTimeNeg() const {return fTOFKaonTimeNeg;}
646
647 inline void AliFemtoV0::SetImpactDprimPos(const float& x) {fImpactDprimPos = x;}
648 inline void AliFemtoV0::SetImpactDweakPos(const float& x) {fImpactDweakPos = x;}
649 inline void AliFemtoV0::SetImpactDmatPos(const float& x) {fImpactDmatPos = x;}
650 inline float AliFemtoV0::ImpactDprimPos() const {return fImpactDprimPos;}
651 inline float AliFemtoV0::ImpactDweakPos() const {return fImpactDweakPos;}
652 inline float AliFemtoV0::ImpactDmatPos() const {return fImpactDmatPos;}
653
654 inline void AliFemtoV0::SetImpactDprimNeg(const float& x) {fImpactDprimNeg = x;}
655 inline void AliFemtoV0::SetImpactDweakNeg(const float& x) {fImpactDweakNeg = x;}
656 inline void AliFemtoV0::SetImpactDmatNeg(const float& x) {fImpactDmatNeg = x;}
657 inline float AliFemtoV0::ImpactDprimNeg() const {return fImpactDprimNeg;}
658 inline float AliFemtoV0::ImpactDweakNeg() const {return fImpactDweakNeg;}
659 inline float AliFemtoV0::ImpactDmatNeg() const {return fImpactDmatNeg;}
660
661 #endif
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679