ATLAS Offline Software
ReVertex.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 // ****************************************************************************
5 // ----------------------------------------------------------------------------
6 // ReVertex
7 //
8 // Konstantin Beloborodov <Konstantin.Beloborodov@cern.ch>
9 //
10 // ----------------------------------------------------------------------------
11 // ****************************************************************************
17 
24 
25 using namespace DerivationFramework;
26 
27 ReVertex::ReVertex(const std::string& t,
28  const std::string& n,
29  const IInterface* p) :
30  AthAlgTool(t,n,p), m_vertexEstimator("InDet::VertexPointEstimator"), m_iVertexFitter("Trk::TrkVKalVrtFitter"),
31  m_massConst(0.),
32  m_totalMassConst(0.),
33  m_v0Tools("Trk::V0Tools"),
34  m_pvRefitter("Analysis::PrimaryVertexRefitter", this),
35  m_doMassConst(false),
36  m_vertexFittingWithPV(false),
37  m_chi2cut(-1.0),
38  m_trkDeltaZ(-1.0),
39  m_useAdditionalTrack(false)
40 {
41 
42  declareInterface<DerivationFramework::IAugmentationTool>(this);
43  declareProperty("TrackIndices", m_TrackIndices);
44  declareProperty("TrkVertexFitterTool", m_iVertexFitter);
45  declareProperty("VertexPointEstimator",m_vertexEstimator);
46 
47  declareProperty("OutputVtxContainerName", m_OutputContainerName);
48  declareProperty("InputVtxContainerName", m_inputContainerName);
49  declareProperty("TrackContainerName", m_trackContainer = "InDetTrackParticles");
50  declareProperty("UseVertexFittingWithPV", m_vertexFittingWithPV);
51 
52  declareProperty("HypothesisNames",m_hypoNames);
53 
54  declareProperty("V0Tools" , m_v0Tools);
55  declareProperty("PVRefitter" , m_pvRefitter);
56  declareProperty("PVContainerName" , m_pvContainerName = "PrimaryVertices");
57  declareProperty("RefPVContainerName" , m_refPVContainerName = "RefittedPrimaryVertices");
58 
59  declareProperty("UseMassConstraint", m_doMassConst);
60  declareProperty("VertexMass", m_totalMassConst);
61  declareProperty("SubVertexMass", m_massConst);
62  declareProperty("MassInputParticles", m_trkMasses);
63  declareProperty("SubVertexTrackIndices", m_indices);
64 
65  declareProperty("UseAdditionalTrack", m_useAdditionalTrack);
66 
67  declareProperty("RefitPV" , m_refitPV = false);
68  //This parameter will allow us to optimize the number of PVs under consideration as the probability
69  //of a useful primary vertex drops significantly the higher you go
70  declareProperty("MaxPVrefit" , m_PV_max = 1000);
71  declareProperty("DoVertexType" , m_DoVertexType = 7);
72  // minimum number of tracks for PV to be considered for PV association
73  declareProperty("MinNTracksInPV" , m_PV_minNTracks = 0);
74  declareProperty("Do3d" , m_do3d = false);
75  declareProperty("AddPVData" , m_AddPVData = true);
76  declareProperty("StartingPoint0" , m_startingpoint0 = false);
80  declareProperty("TrkDeltaZ",m_trkDeltaZ);
81 
82 
83 }
84 
86  ATH_MSG_DEBUG("in initialize()");
87  if(m_TrackIndices.empty()) {
88  ATH_MSG_FATAL("No Indices provided");
89  return StatusCode::FAILURE;
90  }
91  ATH_CHECK(m_iVertexFitter.retrieve());
92  ATH_CHECK(m_v0Tools.retrieve());
93  ATH_CHECK(m_pvRefitter.retrieve());
94  ATH_CHECK(m_vertexEstimator.retrieve());
95  m_VKVFitter = dynamic_cast<Trk::TrkVKalVrtFitter*>(&(*m_iVertexFitter));
96  if(m_VKVFitter==nullptr) return StatusCode::FAILURE;
97  ATH_CHECK(m_OutputContainerName.initialize());
98  ATH_CHECK(m_inputContainerName.initialize());
100  ATH_CHECK(m_pvContainerName.initialize());
101  ATH_CHECK(m_refPVContainerName.initialize());
103  return StatusCode::SUCCESS;
104 }
105 
106 
108 
110  ATH_CHECK(vtxContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
111 
112  const size_t Ntracks = m_TrackIndices.size();
113 
116  ATH_CHECK(InVtxContainer.isValid());
117  ATH_CHECK(importedTrackCollection.isValid());
118  //----------------------------------------------------
119  // retrieve primary vertices
120  //----------------------------------------------------
122  ATH_CHECK(pvContainer.isValid());
123 
124  std::vector<const xAOD::TrackParticle*> fitpair(Ntracks + m_useAdditionalTrack);
125  for(const xAOD::Vertex* v : *InVtxContainer)
126  {
127 
128  bool passed = false;
129  for(size_t i=0;i<m_hypoNames.size();i++) {
131  passed |= onia.pass();
132  }
133  if (!passed && m_hypoNames.size()) continue;
134 
135  for(size_t i =0; i<Ntracks; i++)
136  {
137  size_t trackN = m_TrackIndices[i];
138  if(trackN >= v->nTrackParticles())
139  {
140  ATH_MSG_FATAL("Indices exceeds limit in particle");
141  return StatusCode::FAILURE;
142  }
143  fitpair[i] = v->trackParticle(trackN);
144  }
145 
147  {
148  // Loop over ID tracks, call vertexing
149  for (auto trkItr=importedTrackCollection->cbegin(); trkItr!=importedTrackCollection->cend(); ++trkItr) {
150  const xAOD::TrackParticle* tp (*trkItr);
151  fitpair.back() = nullptr;
152  if (Analysis::JpsiUpsilonCommon::isContainedIn(tp,fitpair)) continue; // remove tracks which were used to build J/psi+2Tracks
153  fitpair.back() = tp;
154 
155  // Daniel Scheirich: remove track too far from the Jpsi+2Tracks vertex (DeltaZ cut)
156  if(m_trkDeltaZ>0 &&
157  std::abs((tp)->z0() + (tp)->vz() - v->z()) > m_trkDeltaZ )
158  continue;
159 
160  fitAndStore(vtxContainer.ptr(),v,InVtxContainer.cptr(),fitpair,importedTrackCollection.cptr(),pvContainer.cptr());
161  }
162  }
163  else
164  {
165  fitAndStore(vtxContainer.ptr(),v,InVtxContainer.cptr(),fitpair,importedTrackCollection.cptr(),pvContainer.cptr());
166  }
167  }
168 
169  if(m_AddPVData){
170  // Give the helper class the ptr to v0tools and beamSpotsSvc to use
172  if(not evt.isValid()) ATH_MSG_ERROR("Cannot Retrieve " << evt.key() );
173  BPhysPVTools helper(&(*m_v0Tools), evt.cptr());
174  helper.SetMinNTracksInPV(m_PV_minNTracks);
175  helper.SetSave3d(m_do3d);
176 
177  if(m_refitPV) {
178  //----------------------------------------------------
179  // Try to retrieve refitted primary vertices
180  //----------------------------------------------------
182  ATH_CHECK(refPvContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
183 
184  if(vtxContainer->size() >0){
185  ATH_CHECK(helper.FillCandwithRefittedVertices(vtxContainer.ptr(), pvContainer.cptr(), refPvContainer.ptr(), &(*m_pvRefitter) , m_PV_max, m_DoVertexType));
186  }
187  }else{
188  if(vtxContainer->size() >0) ATH_CHECK(helper.FillCandExistingVertices(vtxContainer.ptr(), pvContainer.cptr(), m_DoVertexType));
189  }
190  }
191 
192  return StatusCode::SUCCESS;
193 }
194 
196  const xAOD::Vertex* v,
197  const xAOD::VertexContainer *InVtxContainer,
198  const std::vector<const xAOD::TrackParticle*> &inputTracks,
199  const xAOD::TrackParticleContainer* importedTrackCollection,
200  const xAOD::VertexContainer* pvContainer) const
201 {
202  std::unique_ptr<xAOD::Vertex> ptr(fit(inputTracks, importedTrackCollection, nullptr));
203  if(!ptr)return;
204 
205  double chi2DOF = ptr->chiSquared()/ptr->numberDoF();
206  ATH_MSG_DEBUG("Candidate chi2/DOF is " << chi2DOF);
207  bool chi2CutPassed = (m_chi2cut <= 0.0 || chi2DOF < m_chi2cut);
208  if(!chi2CutPassed) { ATH_MSG_DEBUG("Chi Cut failed!"); return; }
209  xAOD::BPhysHelper bHelper(ptr.get());//"get" does not "release" still automatically deleted
210  bHelper.setRefTrks();
211  if (m_trkMasses.size()==inputTracks.size()) {
212  TLorentzVector bMomentum = bHelper.totalP(m_trkMasses);
213  double bMass = bMomentum.M();
214  bool passesCuts = (m_BMassUpper > bMass && bMass > m_BMassLower);
215  if(!passesCuts)return;
216  }
217 
218  DerivationFramework::BPhysPVTools::PrepareVertexLinks( ptr.get(), importedTrackCollection );
219  std::vector<const xAOD::Vertex*> thePreceding;
220  thePreceding.push_back(v);
222  //
223  Analysis::CleanUpVertex closestRefPV = Analysis::JpsiUpsilonCommon::ClosestRefPV(bHelper, pvContainer, &(*m_pvRefitter));
224  if (!closestRefPV.get()) return;
225  std::unique_ptr<xAOD::Vertex> ptrPV(fit(inputTracks, importedTrackCollection, closestRefPV.get()));
226  if(!ptrPV) return;
227 
228  double chi2DOFPV = ptrPV->chiSquared()/ptrPV->numberDoF();
229  ATH_MSG_DEBUG("CandidatePV chi2/DOF is " << chi2DOFPV);
230  bool chi2CutPassed = (m_chi2cut <= 0.0 || chi2DOFPV < m_chi2cut);
231  if(!chi2CutPassed) { ATH_MSG_DEBUG("Chi Cut failed!"); return; }
232  xAOD::BPhysHelper bHelperPV(ptrPV.get());//"get" does not "release" still automatically deleted
233  bHelperPV.setRefTrks();
234  if (m_trkMasses.size()==inputTracks.size()) {
235  TLorentzVector bMomentumPV = bHelperPV.totalP(m_trkMasses);
236  double bMass = bMomentumPV.M();
237  bool passesCuts = (m_BMassUpper > bMass && bMass > m_BMassLower);
238  if(!passesCuts)return;
239  }
240 
241  bHelperPV.setPrecedingVertices(thePreceding, InVtxContainer);
242  vtxContainer->push_back(ptrPV.release());
243  return; //Don't store other vertex
244  }
245  bHelper.setPrecedingVertices(thePreceding, InVtxContainer);
246  vtxContainer->push_back(ptr.release());
247 }
248 
249  // *********************************************************************************
250 
251  // ---------------------------------------------------------------------------------
252  // fit - does the fit
253  // ---------------------------------------------------------------------------------
254 
255 xAOD::Vertex* ReVertex::fit(const std::vector<const xAOD::TrackParticle*> &inputTracks,
256  const xAOD::TrackParticleContainer* importedTrackCollection,
257  const xAOD::Vertex* pv) const
258 {
259  std::unique_ptr<Trk::IVKalState> state = m_VKVFitter->makeState();
260  if (m_doMassConst && (m_trkMasses.size()==inputTracks.size())) {
264  }
265  if (pv) {
266  m_VKVFitter->setCnstType(8, *state);
267  m_VKVFitter->setVertexForConstraint(pv->position().x(),
268  pv->position().y(),
269  pv->position().z(), *state);
270  m_VKVFitter->setCovVrtForConstraint(pv->covariancePosition()(Trk::x,Trk::x),
271  pv->covariancePosition()(Trk::y,Trk::x),
272  pv->covariancePosition()(Trk::y,Trk::y),
273  pv->covariancePosition()(Trk::z,Trk::x),
274  pv->covariancePosition()(Trk::z,Trk::y),
275  pv->covariancePosition()(Trk::z,Trk::z), *state );
276  }
277 
278  // Do the fit itself.......
279  // Starting point (use the J/psi position)
280  const Trk::Perigee& aPerigee1 = inputTracks[0]->perigeeParameters();
281  const Trk::Perigee& aPerigee2 = inputTracks[1]->perigeeParameters();
282  int sflag = 0;
283  int errorcode = 0;
284  Amg::Vector3D startingPoint = m_vertexEstimator->getCirclesIntersectionPoint(&aPerigee1,&aPerigee2,sflag,errorcode);
285  if (errorcode != 0) {startingPoint(0) = 0.0; startingPoint(1) = 0.0; startingPoint(2) = 0.0;}
286  xAOD::Vertex* theResult = m_VKVFitter->fit(inputTracks, startingPoint, *state);
287 
288  // Added by ASC
289  if(theResult != 0){
290  std::vector<ElementLink<DataVector<xAOD::TrackParticle> > > newLinkVector;
291  for(unsigned int i=0; i< theResult->trackParticleLinks().size(); i++)
292  {
293  ElementLink<DataVector<xAOD::TrackParticle> > mylink=theResult->trackParticleLinks()[i]; //makes a copy (non-const)
294  mylink.setStorableObject( *importedTrackCollection, true);
295  newLinkVector.push_back( mylink );
296  }
297  theResult->clearTracks();
298  theResult->setTrackParticleLinks( newLinkVector );
299  }
300 
301  return theResult;
302 }
BPhysPVTools.h
DerivationFramework::ReVertex::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: ReVertex.h:66
Trk::y
@ y
Definition: ParamDefs.h:62
Analysis::JpsiUpsilonCommon::ClosestRefPV
static Analysis::CleanUpVertex ClosestRefPV(xAOD::BPhysHelper &, const xAOD::VertexContainer *, const Analysis::PrimaryVertexRefitter *)
Definition: JpsiUpsilonCommon.cxx:94
V0Tools.h
DerivationFramework::ReVertex::m_TrackIndices
std::vector< int > m_TrackIndices
Definition: ReVertex.h:59
Analysis::CleanUpVertex
Definition: JpsiUpsilonCommon.h:22
xAOD::BPhysHelper::totalP
TVector3 totalP()
: Returns total 3-momentum calculated from the refitted tracks
Definition: BPhysHelper.cxx:374
Analysis::CleanUpVertex::get
const xAOD::Vertex * get() const
Definition: JpsiUpsilonCommon.h:26
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DerivationFramework::ReVertex::m_OutputContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_OutputContainerName
Definition: ReVertex.h:63
DerivationFramework::ReVertex::fit
xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &inputTracks, const xAOD::TrackParticleContainer *importedTrackCollection, const xAOD::Vertex *pv) const
Definition: ReVertex.cxx:255
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
DerivationFramework::ReVertex::m_massConst
double m_massConst
Definition: ReVertex.h:72
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
max
#define max(a, b)
Definition: cfImp.cxx:41
Trk::TrkVKalVrtFitter::setVertexForConstraint
virtual void setVertexForConstraint(const xAOD::Vertex &, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:152
Trk::TrkVKalVrtFitter::setCovVrtForConstraint
virtual void setCovVrtForConstraint(double XX, double XY, double YY, double XZ, double YZ, double ZZ, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:178
Trk::z
@ z
global position (cartesian)
Definition: ParamDefs.h:63
DerivationFramework::ReVertex::addBranches
virtual StatusCode addBranches() const override
Pass the thinning service
Definition: ReVertex.cxx:107
DerivationFramework::ReVertex::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: ReVertex.h:81
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
VertexPointEstimator.h
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
DerivationFramework::ReVertex::m_vertexFittingWithPV
bool m_vertexFittingWithPV
Definition: ReVertex.h:88
DerivationFramework::ReVertex::m_useAdditionalTrack
bool m_useAdditionalTrack
Definition: ReVertex.h:95
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
xAOD::Vertex_v1::trackParticleLinks
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
DerivationFramework::ReVertex::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: ReVertex.h:78
DerivationFramework::ReVertex::m_chi2cut
double m_chi2cut
Definition: ReVertex.h:92
DerivationFramework::BPhysPVTools
Definition: BPhysPVTools.h:25
ParticleTest.tp
tp
Definition: ParticleTest.py:25
DerivationFramework::ReVertex::m_hypoNames
std::vector< std::string > m_hypoNames
Definition: ReVertex.h:74
DerivationFramework::ReVertex::m_inputContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_inputContainerName
Definition: ReVertex.h:64
xAOD::BPhysHypoHelper::pass
bool pass() const
get the pass flag for this hypothesis
Definition: BPhysHypoHelper.cxx:358
DataVector::cend
const_iterator cend() const noexcept
Return a const_iterator pointing past the end of the collection.
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
DerivationFramework::ReVertex::m_VKVFitter
Trk::TrkVKalVrtFitter * m_VKVFitter
Definition: ReVertex.h:62
Analysis::JpsiUpsilonCommon::isContainedIn
static bool isContainedIn(const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticle * > &)
Definition: JpsiUpsilonCommon.cxx:58
xAOD::BPhysHelper::setPrecedingVertices
bool setPrecedingVertices(const std::vector< const xAOD::Vertex * > &vertices, const xAOD::VertexContainer *vertexContainer)
Sets links to preceding vertices.
Definition: BPhysHelper.cxx:641
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
PrimaryVertexRefitter.h
TrkVKalVrtFitter.h
DerivationFramework::ReVertex::m_vertexEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition: ReVertex.h:60
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
DerivationFramework::ReVertex::m_trackContainer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainer
Definition: ReVertex.h:65
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
DerivationFramework::ReVertex::m_refitPV
bool m_refitPV
Definition: ReVertex.h:84
xAOD::BPhysHypoHelper
Definition: BPhysHypoHelper.h:73
Trk::TrkVKalVrtFitter::setMassForConstraint
virtual void setMassForConstraint(double Mass, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:134
DerivationFramework::ReVertex::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: ReVertex.h:77
DerivationFramework::ReVertex::m_BMassUpper
double m_BMassUpper
Definition: ReVertex.h:90
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
python.TrigInDetConfig.inputTracks
inputTracks
Definition: TrigInDetConfig.py:168
lumiFormat.i
int i
Definition: lumiFormat.py:92
DerivationFramework::ReVertex::m_trkMasses
std::vector< double > m_trkMasses
Definition: ReVertex.h:70
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::ReVertex::m_indices
std::vector< int > m_indices
Definition: ReVertex.h:71
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
SG::WriteHandle::ptr
pointer_type ptr()
Dereference the pointer.
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
BPhysHypoHelper.h
: B-physcis xAOD helpers.
DerivationFramework::ReVertex::initialize
virtual StatusCode initialize() override
Definition: ReVertex.cxx:85
Trk::TrkVKalVrtFitter::setCnstType
virtual void setCnstType(int, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:82
xAOD::Vertex_v1::setTrackParticleLinks
void setTrackParticleLinks(const TrackParticleLinks_t &trackParticles)
Set all track particle links at once.
DerivationFramework::ReVertex::m_DoVertexType
int m_DoVertexType
Definition: ReVertex.h:80
DerivationFramework::ReVertex::m_do3d
bool m_do3d
Definition: ReVertex.h:82
DerivationFramework::ReVertex::m_v0Tools
ToolHandle< Trk::V0Tools > m_v0Tools
Definition: ReVertex.h:76
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DerivationFramework::BPhysPVTools::PrepareVertexLinks
static void PrepareVertexLinks(xAOD::Vertex *theResult, const xAOD::TrackParticleContainer *importedTrackCollection)
Definition: BPhysPVTools.cxx:530
JpsiUpsilonCommon.h
DerivationFramework::ReVertex::ReVertex
ReVertex(const std::string &t, const std::string &n, const IInterface *p)
Definition: ReVertex.cxx:27
xAOD::Vertex_v1::clearTracks
void clearTracks()
Remove all tracks from the vertex.
Definition: Vertex_v1.cxx:331
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
min
#define min(a, b)
Definition: cfImp.cxx:40
DerivationFramework::ReVertex::m_PV_max
int m_PV_max
Definition: ReVertex.h:79
DerivationFramework::ReVertex::m_AddPVData
bool m_AddPVData
Definition: ReVertex.h:83
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
IVertexFitter.h
DerivationFramework::ReVertex::m_BMassLower
double m_BMassLower
Definition: ReVertex.h:91
xAOD::Vertex_v1::numberDoF
float numberDoF() const
Returns the number of degrees of freedom of the vertex fit as float.
python.PyAthena.v
v
Definition: PyAthena.py:157
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
xAOD::BPhysHelper::setRefTrks
bool setRefTrks(std::vector< float > px, std::vector< float > py, std::vector< float > pz)
Sets refitted track momenta.
Definition: BPhysHelper.cxx:286
DerivationFramework::ReVertex::m_totalMassConst
double m_totalMassConst
Definition: ReVertex.h:73
VertexContainer.h
xAOD::Vertex_v1::chiSquared
float chiSquared() const
Returns the of the vertex fit as float.
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
DerivationFramework::ReVertex::m_doMassConst
bool m_doMassConst
Definition: ReVertex.h:85
DerivationFramework::ReVertex::m_startingpoint0
bool m_startingpoint0
Definition: ReVertex.h:86
python.changerun.pv
pv
Definition: changerun.py:81
DataVector::cbegin
const_iterator cbegin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
DerivationFramework::ReVertex::m_pvContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerName
Definition: ReVertex.h:67
DerivationFramework::ReVertex::fitAndStore
void fitAndStore(xAOD::VertexContainer *vtxContainer, const xAOD::Vertex *v, const xAOD::VertexContainer *InVtxContainer, const std::vector< const xAOD::TrackParticle * > &inputTracks, const xAOD::TrackParticleContainer *importedTrackCollection, const xAOD::VertexContainer *pvContainer) const
Definition: ReVertex.cxx:195
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Trk::TrkVKalVrtFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const override final
Interface for MeasuredPerigee with starting point.
Definition: TrkVKalVrtFitter.cxx:261
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::ReVertex::m_iVertexFitter
ToolHandle< Trk::IVertexFitter > m_iVertexFitter
Definition: ReVertex.h:61
Trk::x
@ x
Definition: ParamDefs.h:61
DerivationFramework::ReVertex::m_trkDeltaZ
double m_trkDeltaZ
Definition: ReVertex.h:93
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
Trk::TrkVKalVrtFitter::setMassInputParticles
virtual void setMassInputParticles(const std::vector< double > &, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:187
Trk::TrkVKalVrtFitter::makeState
virtual std::unique_ptr< IVKalState > makeState(const EventContext &ctx) const override final
Definition: TrkVKalVrtFitter.cxx:118
VertexAuxContainer.h
Trk::TrkVKalVrtFitter
Definition: TrkVKalVrtFitter.h:67
ReVertex.h