Lines getting the matched track moved to a method in AliCalorimeterUtils. Lines copie...
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoXi.cxx
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 // AliFemtoXi: special type of particle desling with the specifics       //
4 // of the Xi type of particle                                            //
5 // It stores the information both about the Xi itself and about it's     //
6 // daughters, as well as the bachelor particle from first decay vertex   //
7 // so that the caut betwen the daughter characteristics and the bachelor //
8 // is possible.                                                          //
9 //                                                                       //
10 ///////////////////////////////////////////////////////////////////////////
11 #include "AliFemtoXi.h"
12 #include "phys_constants.h"
13
14 // -----------------------------------------------------------------------
15 AliFemtoXi::AliFemtoXi():
16   fCharge(0), fDecayLengthXi(0),
17   fDecayVertexXi(0),
18   fDcaXiDaughters(0), fDcaXiToPrimVertex(0), fDcaBachelorToPrimVertex(0),
19   fMomBachelor(0), fKeyBachelor(0),
20   fTpcHitsBac(0), fChi2Xi(0), fClXi(0), fChi2Bachelor(0), fClBachelor(0),
21   fDedxBachelor(0), fNufDedxBachelor(0), fMomXi(0),
22   fAlphaXi(0), fPtArmXi(0),
23   fEXi(0), fEOmega(0), fEBacPion(0), fEBacKaon(0),
24   fMassXi(0), fMassOmega(0), fRapXi(0), fRapOmega(0),
25   fCTauXi(0), fCTauOmega(0),
26   fPtXi(0), fPtotXi(0), fPtBac(0), fPtotBac(0),
27   fKeyBac(0)
28 {
29   fTopologyMapBachelor[0] = 0;
30   fTopologyMapBachelor[1] = 0;
31 }
32 // -----------------------------------------------------------------------
33 void AliFemtoXi::UpdateXi(){
34   //Calc. derived members of the xi class
35   float tMomV0AlongXi, tMomBacAlongXi;
36
37    fMomXi  = MomV0() + MomBac(); 
38    fPtXi   = fMomXi.Perp();
39    fPtotXi = fMomXi.Mag();
40    fPtBac  = MomBac().Perp();
41    fPtotBac= MomBac().Mag();
42    fEXi= ::sqrt(fPtotXi*fPtotXi+kMXIMINUS*kMXIMINUS);
43    fEOmega= ::sqrt(fPtotXi*fPtotXi+kMOMEGAMINUS*kMOMEGAMINUS);
44    fEBacPion = ::sqrt(PtotBac()*PtotBac()+kMPIONMINUS*kMPIONMINUS);
45    fEBacKaon = ::sqrt(PtotBac()*PtotBac()+kMKAONMINUS*kMKAONMINUS);
46
47    tMomV0AlongXi  =  MomV0()*fMomXi / ::sqrt(::pow(fPtotXi,2));
48    tMomBacAlongXi =  MomBac()*fMomXi / ::sqrt(::pow(fPtotXi,2));
49
50    fAlphaXi = (tMomBacAlongXi-tMomV0AlongXi)/(tMomBacAlongXi+tMomV0AlongXi);
51    fPtArmXi =  ::sqrt(PtotBac()*PtotBac() - tMomBacAlongXi*tMomBacAlongXi);
52    fMassXi = ::sqrt(::pow(EBacPion()+ELambda(),2)-::pow(fPtotXi,2));
53    fMassOmega = ::sqrt(::pow(EBacKaon()+ELambda(),2)-::pow(fPtotXi,2));
54
55    fRapXi = 0.5*::log( (EXi()+fMomXi.z()) / (EXi()-fMomXi.z()) );
56    fCTauXi = kMXIMINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.Mag(),2.) );
57    
58    fRapOmega = 0.5*::log( (EOmega()+fMomXi.z()) / (EOmega()-fMomXi.z()) );// eO,
59    fCTauOmega = kMOMEGAMINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.Mag(),2.) );
60 }
61 // -----------------------------------------------------------------------
62 #ifdef __ROOT__
63 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
64 #include "StStrangeMuDstMaker/StXiMuDst.h"
65 AliFemtoXi::AliFemtoXi( StXiMuDst& xiFromMuDst)  : AliFemtoV0(xiFromMuDst) { // from strangess micro dst structure
66   UpdateV0(); // the v0 stuff
67
68
69   fCharge = xiFromMuDst.charge();
70   fDecayLengthXi = xiFromMuDst.decayLengthXi(); // 12/07/2001 Gael
71   fDecayVertexXi.setX(xiFromMuDst.decayVertexXiX());
72   fDecayVertexXi.setY(xiFromMuDst.decayVertexXiY());
73   fDecayVertexXi.setZ(xiFromMuDst.decayVertexXiZ());
74   fDcaXiDaughters = xiFromMuDst.dcaXiDaughters();
75   fDcaBachelorToPrimVertex = xiFromMuDst.dcaBachelorToPrimVertex();
76   fDcaXiToPrimVertex = xiFromMuDst.dcaXiToPrimVertex();
77   fMomBachelor.setX(xiFromMuDst.momBachelorX());
78   fMomBachelor.setY(xiFromMuDst.momBachelorY());
79   fMomBachelor.setZ(xiFromMuDst.momBachelorZ());
80   
81   fKeyBachelor = xiFromMuDst.keyBachelor();
82   fTopologyMapBachelor[0] = xiFromMuDst.topologyMapBachelor().data(1);
83   fTopologyMapBachelor[1] = xiFromMuDst.topologyMapBachelor().data(2);
84   fTpcHitsBac = xiFromMuDst.topologyMapBachelor().numberOfHits(kTpcId); // 12/07/2001 Gael
85
86   fChi2Xi = xiFromMuDst.chi2Xi();//nulle
87   fClXi = xiFromMuDst.clXi();//nulle
88   fChi2Bachelor = xiFromMuDst.chi2Bachelor();
89   fClBachelor = xiFromMuDst.clBachelor();
90   
91   fDedxBachelor = xiFromMuDst.dedxBachelor();
92   fNufDedxBachelor = xiFromMuDst.nufDedxBachelor();
93
94   UpdateXi(); // the xi stuff
95   
96 }
97
98 #endif // __NO_STAR_DEPENDENCE_ALLOWED__
99 #endif // __ROOT__
100