]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFemtoXi.cxx
Initial check-in of the model classes
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFemtoXi.cxx
1 #include "Infrastructure/AliFemtoXi.h"
2 #include "phys_constants.h"
3
4 // -----------------------------------------------------------------------
5 AliFemtoXi::AliFemtoXi():
6   fCharge(0), fDecayLengthXi(0),
7   fDecayVertexXi(0),
8   fDcaXiDaughters(0), fDcaXiToPrimVertex(0), fDcaBachelorToPrimVertex(0),
9   fMomBachelor(0), fKeyBachelor(0),
10   fTpcHitsBac(0), fChi2Xi(0), fClXi(0), fChi2Bachelor(0), fClBachelor(0),
11   fDedxBachelor(0), fNufDedxBachelor(0), fMomXi(0),
12   fAlphaXi(0), fPtArmXi(0),
13   fEXi(0), fEOmega(0), fEBacPion(0), fEBacKaon(0),
14   fMassXi(0), fMassOmega(0), fRapXi(0), fRapOmega(0),
15   fCTauXi(0), fCTauOmega(0),
16   fPtXi(0), fPtotXi(0), fPtBac(0), fPtotBac(0),
17   fKeyBac(0)
18 {/* no-op */}
19 // -----------------------------------------------------------------------
20 void AliFemtoXi::UpdateXi(){
21   //Calc. derived members of the xi class
22   float MomV0AlongXi, MomBacAlongXi;
23
24    fMomXi  = momV0() + momBac(); 
25    fPtXi   = fMomXi.perp();
26    fPtotXi = fMomXi.mag();
27    fPtBac  = momBac().perp();
28    fPtotBac= momBac().mag();
29    fEXi= ::sqrt(fPtotXi*fPtotXi+M_XI_MINUS*M_XI_MINUS);
30    fEOmega= ::sqrt(fPtotXi*fPtotXi+M_OMEGA_MINUS*M_OMEGA_MINUS);
31    fEBacPion = ::sqrt(ptotBac()*ptotBac()+M_PION_MINUS*M_PION_MINUS);
32    fEBacKaon = ::sqrt(ptotBac()*ptotBac()+M_KAON_MINUS*M_KAON_MINUS);
33
34    MomV0AlongXi  =  momV0()*fMomXi / ::sqrt(::pow(fPtotXi,2));
35    MomBacAlongXi =  momBac()*fMomXi / ::sqrt(::pow(fPtotXi,2));
36
37    fAlphaXi = (MomBacAlongXi-MomV0AlongXi)/(MomBacAlongXi+MomV0AlongXi);
38    fPtArmXi =  ::sqrt(ptotBac()*ptotBac() - MomBacAlongXi*MomBacAlongXi);
39    fMassXi = ::sqrt(::pow(eBacPion()+eLambda(),2)-::pow(fPtotXi,2));
40    fMassOmega = ::sqrt(::pow(eBacKaon()+eLambda(),2)-::pow(fPtotXi,2));
41
42    fRapXi = 0.5*::log( (eXi()+fMomXi.z()) / (eXi()-fMomXi.z()) );
43    fCTauXi = M_XI_MINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.mag(),2.) );
44    
45    fRapOmega = 0.5*::log( (eOmega()+fMomXi.z()) / (eOmega()-fMomXi.z()) );// eO,
46    fCTauOmega = M_OMEGA_MINUS*(fDecayLengthXi) / ::sqrt( ::pow((double)fMomXi.mag(),2.) );
47 }
48 // -----------------------------------------------------------------------
49 #ifdef __ROOT__
50 #ifndef __NO_STAR_DEPENDENCE_ALLOWED__
51 #include "StStrangeMuDstMaker/StXiMuDst.h"
52 AliFemtoXi::AliFemtoXi( StXiMuDst& xiFromMuDst)  : AliFemtoV0(xiFromMuDst) { // from strangess micro dst structure
53   UpdateV0(); // the v0 stuff
54
55
56   fCharge = xiFromMuDst.charge();
57   fDecayLengthXi = xiFromMuDst.decayLengthXi(); // 12/07/2001 Gael
58   fDecayVertexXi.setX(xiFromMuDst.decayVertexXiX());
59   fDecayVertexXi.setY(xiFromMuDst.decayVertexXiY());
60   fDecayVertexXi.setZ(xiFromMuDst.decayVertexXiZ());
61   fDcaXiDaughters = xiFromMuDst.dcaXiDaughters();
62   fDcaBachelorToPrimVertex = xiFromMuDst.dcaBachelorToPrimVertex();
63   fDcaXiToPrimVertex = xiFromMuDst.dcaXiToPrimVertex();
64   fMomBachelor.setX(xiFromMuDst.momBachelorX());
65   fMomBachelor.setY(xiFromMuDst.momBachelorY());
66   fMomBachelor.setZ(xiFromMuDst.momBachelorZ());
67   
68   fKeyBachelor = xiFromMuDst.keyBachelor();
69   fTopologyMapBachelor[0] = xiFromMuDst.topologyMapBachelor().data(1);
70   fTopologyMapBachelor[1] = xiFromMuDst.topologyMapBachelor().data(2);
71   fTpcHitsBac = xiFromMuDst.topologyMapBachelor().numberOfHits(kTpcId); // 12/07/2001 Gael
72
73   fChi2Xi = xiFromMuDst.chi2Xi();//nulle
74   fClXi = xiFromMuDst.clXi();//nulle
75   fChi2Bachelor = xiFromMuDst.chi2Bachelor();
76   fClBachelor = xiFromMuDst.clBachelor();
77   
78   fDedxBachelor = xiFromMuDst.dedxBachelor();
79   fNufDedxBachelor = xiFromMuDst.nufDedxBachelor();
80
81   UpdateXi(); // the xi stuff
82   
83 }
84
85 #endif // __NO_STAR_DEPENDENCE_ALLOWED__
86 #endif // __ROOT__
87