1 ///////////////////////////////////////////////////////////////////////////
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 //
10 ///////////////////////////////////////////////////////////////////////////
11 #include "AliFemtoXi.h"
12 #include "phys_constants.h"
14 // -----------------------------------------------------------------------
15 AliFemtoXi::AliFemtoXi():
16 fCharge(0), fDecayLengthXi(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),
29 // -----------------------------------------------------------------------
30 void AliFemtoXi::UpdateXi(){
31 //Calc. derived members of the xi class
32 float tMomV0AlongXi, tMomBacAlongXi;
34 fMomXi = MomV0() + MomBac();
35 fPtXi = fMomXi.perp();
36 fPtotXi = fMomXi.mag();
37 fPtBac = MomBac().perp();
38 fPtotBac= MomBac().mag();
39 fEXi= ::sqrt(fPtotXi*fPtotXi+M_XI_MINUS*M_XI_MINUS);
40 fEOmega= ::sqrt(fPtotXi*fPtotXi+M_OMEGA_MINUS*M_OMEGA_MINUS);
41 fEBacPion = ::sqrt(PtotBac()*PtotBac()+M_PION_MINUS*M_PION_MINUS);
42 fEBacKaon = ::sqrt(PtotBac()*PtotBac()+M_KAON_MINUS*M_KAON_MINUS);
44 tMomV0AlongXi = MomV0()*fMomXi / ::sqrt(::pow(fPtotXi,2));
45 tMomBacAlongXi = MomBac()*fMomXi / ::sqrt(::pow(fPtotXi,2));
47 fAlphaXi = (tMomBacAlongXi-tMomV0AlongXi)/(tMomBacAlongXi+tMomV0AlongXi);
48 fPtArmXi = ::sqrt(PtotBac()*PtotBac() - tMomBacAlongXi*tMomBacAlongXi);
49 fMassXi = ::sqrt(::pow(EBacPion()+ELambda(),2)-::pow(fPtotXi,2));
50 fMassOmega = ::sqrt(::pow(EBacKaon()+ELambda(),2)-::pow(fPtotXi,2));
52 fRapXi = 0.5*::log( (EXi()+fMomXi.z()) / (EXi()-fMomXi.z()) );
53 fCTauXi = M_XI_MINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.mag(),2.) );
55 fRapOmega = 0.5*::log( (EOmega()+fMomXi.z()) / (EOmega()-fMomXi.z()) );// eO,
56 fCTauOmega = M_OMEGA_MINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.mag(),2.) );
58 // -----------------------------------------------------------------------
60 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
61 #include "StStrangeMuDstMaker/StXiMuDst.h"
62 AliFemtoXi::AliFemtoXi( StXiMuDst& xiFromMuDst) : AliFemtoV0(xiFromMuDst) { // from strangess micro dst structure
63 UpdateV0(); // the v0 stuff
66 fCharge = xiFromMuDst.charge();
67 fDecayLengthXi = xiFromMuDst.decayLengthXi(); // 12/07/2001 Gael
68 fDecayVertexXi.setX(xiFromMuDst.decayVertexXiX());
69 fDecayVertexXi.setY(xiFromMuDst.decayVertexXiY());
70 fDecayVertexXi.setZ(xiFromMuDst.decayVertexXiZ());
71 fDcaXiDaughters = xiFromMuDst.dcaXiDaughters();
72 fDcaBachelorToPrimVertex = xiFromMuDst.dcaBachelorToPrimVertex();
73 fDcaXiToPrimVertex = xiFromMuDst.dcaXiToPrimVertex();
74 fMomBachelor.setX(xiFromMuDst.momBachelorX());
75 fMomBachelor.setY(xiFromMuDst.momBachelorY());
76 fMomBachelor.setZ(xiFromMuDst.momBachelorZ());
78 fKeyBachelor = xiFromMuDst.keyBachelor();
79 fTopologyMapBachelor[0] = xiFromMuDst.topologyMapBachelor().data(1);
80 fTopologyMapBachelor[1] = xiFromMuDst.topologyMapBachelor().data(2);
81 fTpcHitsBac = xiFromMuDst.topologyMapBachelor().numberOfHits(kTpcId); // 12/07/2001 Gael
83 fChi2Xi = xiFromMuDst.chi2Xi();//nulle
84 fClXi = xiFromMuDst.clXi();//nulle
85 fChi2Bachelor = xiFromMuDst.chi2Bachelor();
86 fClBachelor = xiFromMuDst.clBachelor();
88 fDedxBachelor = xiFromMuDst.dedxBachelor();
89 fNufDedxBachelor = xiFromMuDst.nufDedxBachelor();
91 UpdateXi(); // the xi stuff
95 #endif // __NO_STAR_DEPENDENCE_ALLOWED__