This package contains implementations of various vertex fitting tools for the LVL2 reconstruction.
- Author
- Dmitr.nosp@m.y.Em.nosp@m.eliya.nosp@m.nov@.nosp@m.cern..nosp@m.ch
Introduction
The package defines and implements the following class:
- TrigL2Vertex - an extended TrigVertex class, contains a full covariance matrix of vertex and tracks. Note that the maximum number of tracks is limited to 9 so that the maximum size of the covariance is 30x30.
The package provides an abstract interface:
- ITrigVertexingTool - an auxiliary tool to be used in vertex fitting tools and applications in order to facilitate operations with TrigL2Vertex instances (e.g. TrigL2Vertex -> TrigVertex conversion, adding tracks to a vertex, setting constraints, etc.)
The list of vertex fitting tools is below:
- TrigVertexFitter this a first prototype of the LVL2 vertex fitter based on ITrigVertexFitter abstract interface. Note that this tool will become obsolete soon as it will be replaced by TrigL2VertexFitter
- TrigL2VertexFitter - an improved and extended fitter with capability of mass-constrained fitting. It uses TrigL2Vertex class as input/output
- TrigVertexingTool - a toolbox to facilitate handling of TrigL2Vertex class
How to use LVL2 vertexing tools:
- Example I : fitting Ds(phi pi) vertex with phi(KK)
StatusCode sc = toolSvc()->retrieveTool(
"TrigL2VertexFitter",
"TrigL2VertexFitter",m_L2vertFitter);
}
sc = toolSvc()->retrieveTool(
"TrigVertexingTool",
"TrigVertexingTool",m_vertexingTool);
}
m_vertexingTool->addTrack((*track1),pL2Ds,
Trk::kaon);
m_vertexingTool->addTrack((*track2),pL2Ds,
Trk::kaon);
m_vertexingTool->addTrack((*track3),pL2Ds,
Trk::pion);
sc=m_vertexingTool->calculateInvariantMass(pL2Ds);
sc=m_vertexingTool->createMotherParticle(pL2Ds);
" z0="<<pL2Ds->m_getMotherTrack()->z0()<<
" phi0="<<pL2Ds->m_getMotherTrack()->phi0()<<
" eta="<<pL2Ds->m_getMotherTrack()->eta()<<
" pT="<<pL2Ds->m_getMotherTrack()->pT()<<
endmsg;
TrigVertex* p_DsV=m_vertexingTool->createTrigVertex(pL2Ds);
if(p_DsV!=NULL){
log <<
MSG::DEBUG <<
"Ds vertex Fit: x= y= z=" << p_DsV->
x() <<
" " << p_DsV->
y() <<
" " << p_DsV->
z() <<
endmsg;
double chi2prob=1.0-Genfun::CumulativeChiSquare(p_DsV->
ndof())(p_DsV->
chi2());
}
}
}
}
delete pL2Ds;
- Example II : Fitting vertex with a mass constraint: Ds -> phi(KK) + pi, where a mass constraint (with phi mass) is imposed on KK pair
double PHIMASS = 1020.0;
m_vertexingTool->addTrack((*track1),pL2V,
Trk::kaon);
m_vertexingTool->addTrack((*track2),pL2V,
Trk::kaon);
m_vertexingTool->addTrack((*track3),pL2V,
Trk::pion);
m_vertexingTool->setMassConstraint(pL2V,(*track1),(*track2),PHIMASS);