34 {
35
38
39 if ( fabs(lambda->
vertexId()) != 3122 )
return false;
40
42 if ((
mass <= m_minMass)||(
mass >= m_maxMass))
return false;
43 if ( lambda->
chi2() >= m_maxChisq )
return false;
44
45
46
47 int index[2] = {0, 1};
49 index[0] = 1;
50 index[1] = 0;
51 }
52
55
56 if(m_UseProtonPID){
62
67 }
68
69 if( !m_doSecondaryVFit ) return true;
70
71
72
73
78
82
85 HepSymMatrix evWideVertex(3, 0);
86
87 evWideVertex[0][0] = 1.0e12;
88 evWideVertex[1][1] = 1.0e12;
89 evWideVertex[2][2] = 1.0e12;
90
91 wideVertex.
setVx(vWideVertex);
92 wideVertex.
setEvx(evWideVertex);
93
94
97
98
102
103
107
108
111
112
115 HepSymMatrix evBeamSpot(3, 0);
116
118 Gaudi::svcLocator()->service("VertexDbSvc", vtxsvc);
122 for (unsigned int ivx = 0; ivx < 3; ivx++){
123 vBeamSpot[ivx] = dbv[ivx];
124 evBeamSpot[ivx][ivx] = vv[ivx] * vv[ivx];
125 }
126 }
127 else{
128 cout << "LambdaSELECTOR ERROR: Could not find a vertex from VertexDbSvc" << endl;
129 return false;
130 }
131
132 beamSpot.
setVx(vBeamSpot);
133 beamSpot.
setEvx(evBeamSpot);
134
137
138
140
141
143
144
145
146 if( !svtxfit->
Fit() )
return false;
147
148
151 double vfitchi2 = svtxfit->
chisq();
152 double flightsig = 0;
153 if( vfiterror != 0 )
154 flightsig = vfitlength/vfiterror;
155
156
157
158 if( vfitchi2 > m_maxVFitChisq ) return false;
159 if( flightsig < m_minFlightSig ) return false;
160
161 return true;
162
163}
virtual const EvtRecVeeVertex * navLambda() const
static void setPidType(PidType pidType)
RecMdcKalTrack * mdcKalTrack()
SmartRef< EvtRecTrack > & daughter(int i)
virtual bool isVertexValid()=0
virtual double * SigmaPrimaryVertex()=0
virtual double * PrimaryVertex()=0
int methodProbability() const
void setChiMinCut(const double chi=4)
void setRecTrack(EvtRecTrack *trk)
void setMethod(const int method)
void identify(const int pidcase)
void usePidSys(const int pidsys)
static ParticleID * instance()
double probProton() const
const HepVector & getZHelix() const
const HepSymMatrix & getZError() const
HepSymMatrix & getZErrorP()
void setPrimaryVertex(const VertexParameter vpar)
double decayLength() const
double decayLengthError() const
static SecondVertexFit * instance()
void setVpar(const VertexParameter vpar)
void AddTrack(const int number, const double mass, const RecMdcTrack *trk)
WTrackParameter wVirtualTrack(int n) const
void AddVertex(int number, VertexParameter vpar, std::vector< int > lis)
static VertexFit * instance()
VertexParameter vpar(int n) const
void BuildVirtualParticle(int number)
void setEvx(const HepSymMatrix &eVx)
void setVx(const HepPoint3D &vx)