9 #ifndef STAR_DcaService
10 #define STAR_DcaService
12 #include "StarClassLibrary/StHelixD.hh"
14 #include "StStrangeEvMuDst.hh"
26 static void setBfield(
double b);
40 static double dcaXiToPrimVertex(
StXiMuDst* xi);
45 static double dcaBachelorToPrimVertex(
StXiMuDst* xi);
46 static double dcaPosToPrimVertex(
StV0MuDst* v0);
47 static double dcaNegToPrimVertex(
StV0MuDst* v0);
52 static double signedDcaXiToPrimVertex(
StXiMuDst* xi);
53 static double signedDcaBachelorToPrimVertex(
StXiMuDst* xi);
54 static double signedDcaPosToPrimVertex(
StV0MuDst* v0);
55 static double signedDcaNegToPrimVertex(
StV0MuDst* v0);
60 static void replaceDcaXiToPrimVertex(
StXiMuDst* xi, Float_t dca);
61 static void replaceDcaBachelorToPrimVertex(
StXiMuDst* xi, Float_t dca);
62 static void replaceDcaPosToPrimVertex(
StV0MuDst* v0, Float_t dca);
63 static void replaceDcaNegToPrimVertex(
StV0MuDst* v0, Float_t dca);
68 static void fixDcaXiToPrimVertex(
StXiMuDst* xi);
69 static void fixSignedDcaXiToPrimVertex(
StXiMuDst* xi);
70 static void fixSignedDcaBachelorToPrimVertex(
StXiMuDst* xi);
71 static void fixSignedDcaPosToPrimVertex(
StV0MuDst* v0);
72 static void fixSignedDcaNegToPrimVertex(
StV0MuDst* v0);
98 static Long_t offsetDcaXiToPrimVertex;
99 static Long_t offsetDcaBachelorToPrimVertex;
100 static Long_t offsetDcaPosToPrimVertex;
101 static Long_t offsetDcaNegToPrimVertex;
103 static void initOffsets();
104 static double signIt();
105 static void replaceDca(TObject*, Float_t, Long_t&, TClass*,
const char*);
106 static double dcaToPrimVertex(
int, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t);
112 inline void DcaService::setBfield(
double b)
119 { setBfield(mk->GetEvent()); }
125 { setPrimVertex(mk->GetEvent()); }
128 { setBfield(ev); setPrimVertex(ev); }
131 { initEvent(mk->GetEvent()); }
133 inline double DcaService::signedDcaXiToPrimVertex(
StXiMuDst* xi)
134 {
return dcaXiToPrimVertex(xi)*signIt(); }
136 inline double DcaService::signedDcaBachelorToPrimVertex(
StXiMuDst* xi)
137 {
return dcaBachelorToPrimVertex(xi)*signIt(); }
139 inline double DcaService::signedDcaPosToPrimVertex(
StV0MuDst* v0)
140 {
return dcaPosToPrimVertex(v0)*signIt(); }
142 inline double DcaService::signedDcaNegToPrimVertex(
StV0MuDst* v0)
143 {
return dcaNegToPrimVertex(v0)*signIt(); }
145 inline void DcaService::fixDcaXiToPrimVertex(
StXiMuDst* xi)
146 { replaceDcaXiToPrimVertex(xi,dcaXiToPrimVertex(xi)); }
148 inline void DcaService::fixSignedDcaXiToPrimVertex(
StXiMuDst* xi)
149 { replaceDcaXiToPrimVertex(xi,signedDcaXiToPrimVertex(xi)); }
151 inline void DcaService::fixSignedDcaBachelorToPrimVertex(
StXiMuDst* xi)
152 { replaceDcaBachelorToPrimVertex(xi,signedDcaBachelorToPrimVertex(xi)); }
154 inline void DcaService::fixSignedDcaPosToPrimVertex(
StV0MuDst* v0)
155 { replaceDcaPosToPrimVertex(v0,signedDcaPosToPrimVertex(v0)); }
157 inline void DcaService::fixSignedDcaNegToPrimVertex(
StV0MuDst* v0)
158 { replaceDcaNegToPrimVertex(v0,signedDcaNegToPrimVertex(v0)); }
static void fixSignedDcasV0s(StStrangeMuDstMaker *mk)
All DCAs for V0s.
Float_t magneticField() const
Magnetic field.
static void fixSignedDcas(StStrangeMuDstMaker *mk)
All DCAs for V0s and Xis.
static void fixSignedDcasXis(StStrangeMuDstMaker *mk)
All DCAs for Xis.