Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Private Attributes | List of all members
DerivationFramework::ReVertex Class Reference

#include <ReVertex.h>

Inheritance diagram for DerivationFramework::ReVertex:
Collaboration diagram for DerivationFramework::ReVertex:

Public Member Functions

 ReVertex (const std::string &t, const std::string &n, const IInterface *p)
 
virtual StatusCode initialize () override
 
virtual StatusCode addBranches () const override
 
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
 
xAOD::Vertexfit (const std::vector< const xAOD::TrackParticle * > &inputTracks, const xAOD::TrackParticleContainer *importedTrackCollection, const xAOD::Vertex *pv) const
 

Private Attributes

std::vector< int > m_TrackIndices
 
ToolHandle< InDet::VertexPointEstimatorm_vertexEstimator
 
ToolHandle< Trk::IVertexFitterm_iVertexFitter
 
Trk::TrkVKalVrtFitterm_VKVFitter {}
 
SG::WriteHandleKey< xAOD::VertexContainerm_OutputContainerName
 
SG::ReadHandleKey< xAOD::VertexContainerm_inputContainerName
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_trackContainer
 
SG::WriteHandleKey< xAOD::VertexContainerm_refPVContainerName
 
SG::ReadHandleKey< xAOD::VertexContainerm_pvContainerName
 
std::vector< double > m_trkMasses
 
std::vector< int > m_indices
 
double m_massConst {}
 
double m_totalMassConst {}
 
std::vector< std::string > m_hypoNames
 
ToolHandle< Trk::V0Toolsm_v0Tools
 
ToolHandle< Analysis::PrimaryVertexRefitterm_pvRefitter
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"}
 
int m_PV_max {}
 
int m_DoVertexType {}
 
size_t m_PV_minNTracks {}
 
bool m_do3d {}
 
bool m_AddPVData {}
 
bool m_refitPV {}
 
bool m_doMassConst {}
 
bool m_startingpoint0 {}
 
bool m_vertexFittingWithPV {}
 
double m_BMassUpper {}
 
double m_BMassLower {}
 
double m_chi2cut {}
 
double m_trkDeltaZ {}
 
bool m_useAdditionalTrack {}
 
SG::ReadHandleKeyArray< xAOD::VertexContainerm_CollectionsToCheck {this, "CheckVertexContainers", {}}
 
SG::ReadHandleKeyArray< xAOD::TrackParticleContainerm_RelinkContainers {this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" }
 

Detailed Description

Definition at line 42 of file ReVertex.h.

Constructor & Destructor Documentation

◆ ReVertex()

ReVertex::ReVertex ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 27 of file ReVertex.cxx.

29  :
30  base_class(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),
40 {
41 
42  declareProperty("TrackIndices", m_TrackIndices);
43  declareProperty("TrkVertexFitterTool", m_iVertexFitter);
44  declareProperty("VertexPointEstimator",m_vertexEstimator);
45 
46  declareProperty("OutputVtxContainerName", m_OutputContainerName);
47  declareProperty("InputVtxContainerName", m_inputContainerName);
48  declareProperty("TrackContainerName", m_trackContainer = "InDetTrackParticles");
49  declareProperty("UseVertexFittingWithPV", m_vertexFittingWithPV);
50 
51  declareProperty("HypothesisNames",m_hypoNames);
52 
53  declareProperty("V0Tools" , m_v0Tools);
54  declareProperty("PVRefitter" , m_pvRefitter);
55  declareProperty("PVContainerName" , m_pvContainerName = "PrimaryVertices");
56  declareProperty("RefPVContainerName" , m_refPVContainerName = "RefittedPrimaryVertices");
57 
58  declareProperty("UseMassConstraint", m_doMassConst);
59  declareProperty("VertexMass", m_totalMassConst);
60  declareProperty("SubVertexMass", m_massConst);
61  declareProperty("MassInputParticles", m_trkMasses);
62  declareProperty("SubVertexTrackIndices", m_indices);
63 
64  declareProperty("UseAdditionalTrack", m_useAdditionalTrack);
65 
66  declareProperty("RefitPV" , m_refitPV = false);
67  //This parameter will allow us to optimize the number of PVs under consideration as the probability
68  //of a useful primary vertex drops significantly the higher you go
69  declareProperty("MaxPVrefit" , m_PV_max = 1000);
70  declareProperty("DoVertexType" , m_DoVertexType = 7);
71  // minimum number of tracks for PV to be considered for PV association
72  declareProperty("MinNTracksInPV" , m_PV_minNTracks = 0);
73  declareProperty("Do3d" , m_do3d = false);
74  declareProperty("AddPVData" , m_AddPVData = true);
75  declareProperty("StartingPoint0" , m_startingpoint0 = false);
76  declareProperty("BMassUpper",m_BMassUpper = std::numeric_limits<double>::max() );
77  declareProperty("BMassLower",m_BMassLower = std::numeric_limits<double>::min() );
78  declareProperty("Chi2Cut",m_chi2cut = std::numeric_limits<double>::max() );
79  declareProperty("TrkDeltaZ",m_trkDeltaZ);
80 
81 
82 }

Member Function Documentation

◆ addBranches()

StatusCode ReVertex::addBranches ( ) const
overridevirtual

Definition at line 108 of file ReVertex.cxx.

108  {
109  const EventContext& ctx = Gaudi::Hive::currentContext();
111  ATH_CHECK(vtxContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
112 
113  const size_t Ntracks = m_TrackIndices.size();
114 
117  ATH_CHECK(InVtxContainer.isValid());
118  ATH_CHECK(importedTrackCollection.isValid());
119  //----------------------------------------------------
120  // retrieve primary vertices
121  //----------------------------------------------------
123  ATH_CHECK(pvContainer.isValid());
124 
125  std::vector<const xAOD::TrackParticle*> fitpair(Ntracks + m_useAdditionalTrack);
126  for(const xAOD::Vertex* v : *InVtxContainer)
127  {
128 
129  bool passed = false;
130  for(size_t i=0;i<m_hypoNames.size();i++) {
132  passed |= onia.pass();
133  }
134  if (!passed && m_hypoNames.size()) continue;
135 
136  for(size_t i =0; i<Ntracks; i++)
137  {
138  size_t trackN = m_TrackIndices[i];
139  if(trackN >= v->nTrackParticles())
140  {
141  ATH_MSG_FATAL("Indices exceeds limit in particle");
142  return StatusCode::FAILURE;
143  }
144  fitpair[i] = v->trackParticle(trackN);
145  }
146 
148  {
149  // Loop over ID tracks, call vertexing
150  for (auto trkItr=importedTrackCollection->cbegin(); trkItr!=importedTrackCollection->cend(); ++trkItr) {
151  const xAOD::TrackParticle* tp (*trkItr);
152  fitpair.back() = nullptr;
153  if (Analysis::JpsiUpsilonCommon::isContainedIn(tp,fitpair)) continue; // remove tracks which were used to build J/psi+2Tracks
154  fitpair.back() = tp;
155 
156  // Daniel Scheirich: remove track too far from the Jpsi+2Tracks vertex (DeltaZ cut)
157  if(m_trkDeltaZ>0 &&
158  std::abs((tp)->z0() + (tp)->vz() - v->z()) > m_trkDeltaZ )
159  continue;
160 
161  fitAndStore(vtxContainer.ptr(),v,InVtxContainer.cptr(),fitpair,importedTrackCollection.cptr(),pvContainer.cptr());
162  }
163  }
164  else
165  {
166  fitAndStore(vtxContainer.ptr(),v,InVtxContainer.cptr(),fitpair,importedTrackCollection.cptr(),pvContainer.cptr());
167  }
168  }
169 
170  if(m_AddPVData){
171  // Give the helper class the ptr to v0tools and beamSpotsSvc to use
173  if(not evt.isValid()) ATH_MSG_ERROR("Cannot Retrieve " << evt.key() );
174  BPhysPVTools helper(&(*m_v0Tools), evt.cptr());
175  helper.SetMinNTracksInPV(m_PV_minNTracks);
176  helper.SetSave3d(m_do3d);
177 
178  if(m_refitPV) {
179  //----------------------------------------------------
180  // Try to retrieve refitted primary vertices
181  //----------------------------------------------------
183  ATH_CHECK(refPvContainer.record(std::make_unique<xAOD::VertexContainer>(), std::make_unique<xAOD::VertexAuxContainer>()));
184 
185  if(vtxContainer->size() >0){
186  ATH_CHECK(helper.FillCandwithRefittedVertices(vtxContainer.ptr(), pvContainer.cptr(), refPvContainer.ptr(), &(*m_pvRefitter) , m_PV_max, m_DoVertexType));
187  }
188  }else{
189  if(vtxContainer->size() >0) ATH_CHECK(helper.FillCandExistingVertices(vtxContainer.ptr(), pvContainer.cptr(), m_DoVertexType));
190  }
191  }
192 
194 
195  std::vector<const xAOD::TrackParticleContainer*> trackCols;
196  for(const auto &str : m_RelinkContainers){
198  trackCols.push_back(handle.cptr());
199  }
200  if(not trackCols.empty()){
201  for(xAOD::Vertex* vtx : *vtxContainer){
202  try{
204  }catch(std::runtime_error const& e){
205  ATH_MSG_ERROR(e.what());
206  return StatusCode::FAILURE;
207  }
208  }
209  }
210  return StatusCode::SUCCESS;
211 }

◆ fit()

xAOD::Vertex * ReVertex::fit ( const std::vector< const xAOD::TrackParticle * > &  inputTracks,
const xAOD::TrackParticleContainer importedTrackCollection,
const xAOD::Vertex pv 
) const

Definition at line 273 of file ReVertex.cxx.

276 {
277  std::unique_ptr<Trk::IVKalState> state = m_VKVFitter->makeState();
278  if (m_doMassConst && (m_trkMasses.size()==inputTracks.size())) {
282  }
283  if (pv) {
284  m_VKVFitter->setCnstType(8, *state);
285  m_VKVFitter->setVertexForConstraint(pv->position().x(),
286  pv->position().y(),
287  pv->position().z(), *state);
288  m_VKVFitter->setCovVrtForConstraint(pv->covariancePosition()(Trk::x,Trk::x),
289  pv->covariancePosition()(Trk::y,Trk::x),
290  pv->covariancePosition()(Trk::y,Trk::y),
291  pv->covariancePosition()(Trk::z,Trk::x),
292  pv->covariancePosition()(Trk::z,Trk::y),
293  pv->covariancePosition()(Trk::z,Trk::z), *state );
294  }
295 
296  // Do the fit itself.......
297  // Starting point (use the J/psi position)
298  const Trk::Perigee& aPerigee1 = inputTracks[0]->perigeeParameters();
299  const Trk::Perigee& aPerigee2 = inputTracks[1]->perigeeParameters();
300  int sflag = 0;
301  int errorcode = 0;
302  Amg::Vector3D startingPoint = m_vertexEstimator->getCirclesIntersectionPoint(&aPerigee1,&aPerigee2,sflag,errorcode);
303  if (errorcode != 0) {startingPoint(0) = 0.0; startingPoint(1) = 0.0; startingPoint(2) = 0.0;}
304  xAOD::Vertex* theResult = m_VKVFitter->fit(inputTracks, startingPoint, *state);
305 
306  // Added by ASC
307  if(theResult != 0){
308  std::vector<ElementLink<DataVector<xAOD::TrackParticle> > > newLinkVector;
309  for(unsigned int i=0; i< theResult->trackParticleLinks().size(); i++)
310  {
311  ElementLink<DataVector<xAOD::TrackParticle> > mylink=theResult->trackParticleLinks()[i]; //makes a copy (non-const)
312  mylink.setStorableObject( *importedTrackCollection, true);
313  newLinkVector.push_back( mylink );
314  }
315  theResult->clearTracks();
316  theResult->setTrackParticleLinks( newLinkVector );
317  }
318 
319  return theResult;
320 }

◆ fitAndStore()

void ReVertex::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 at line 213 of file ReVertex.cxx.

219 {
220  std::unique_ptr<xAOD::Vertex> ptr(fit(inputTracks, importedTrackCollection, nullptr));
221  if(!ptr)return;
222 
223  double chi2DOF = ptr->chiSquared()/ptr->numberDoF();
224  ATH_MSG_DEBUG("Candidate chi2/DOF is " << chi2DOF);
225  bool chi2CutPassed = (m_chi2cut <= 0.0 || chi2DOF < m_chi2cut);
226  if(!chi2CutPassed) { ATH_MSG_DEBUG("Chi Cut failed!"); return; }
227  xAOD::BPhysHelper bHelper(ptr.get());//"get" does not "release" still automatically deleted
228  bHelper.setRefTrks();
229  if (m_trkMasses.size()==inputTracks.size()) {
230  TLorentzVector bMomentum = bHelper.totalP(m_trkMasses);
231  double bMass = bMomentum.M();
232  bool passesCuts = (m_BMassUpper > bMass && bMass > m_BMassLower);
233  if(!passesCuts)return;
234  }
235 
236  DerivationFramework::BPhysPVTools::PrepareVertexLinks( ptr.get(), importedTrackCollection );
237  std::vector<const xAOD::Vertex*> thePreceding;
238  thePreceding.push_back(v);
240  //
241  Analysis::CleanUpVertex closestRefPV = Analysis::JpsiUpsilonCommon::ClosestRefPV(bHelper, pvContainer, &(*m_pvRefitter));
242  if (!closestRefPV.get()) return;
243  std::unique_ptr<xAOD::Vertex> ptrPV(fit(inputTracks, importedTrackCollection, closestRefPV.get()));
244  if(!ptrPV) return;
245 
246  double chi2DOFPV = ptrPV->chiSquared()/ptrPV->numberDoF();
247  ATH_MSG_DEBUG("CandidatePV chi2/DOF is " << chi2DOFPV);
248  bool chi2CutPassed = (m_chi2cut <= 0.0 || chi2DOFPV < m_chi2cut);
249  if(!chi2CutPassed) { ATH_MSG_DEBUG("Chi Cut failed!"); return; }
250  xAOD::BPhysHelper bHelperPV(ptrPV.get());//"get" does not "release" still automatically deleted
251  bHelperPV.setRefTrks();
252  if (m_trkMasses.size()==inputTracks.size()) {
253  TLorentzVector bMomentumPV = bHelperPV.totalP(m_trkMasses);
254  double bMass = bMomentumPV.M();
255  bool passesCuts = (m_BMassUpper > bMass && bMass > m_BMassLower);
256  if(!passesCuts)return;
257  }
258 
259  bHelperPV.setPrecedingVertices(thePreceding, InVtxContainer);
260  vtxContainer->push_back(ptrPV.release());
261  return; //Don't store other vertex
262  }
263  bHelper.setPrecedingVertices(thePreceding, InVtxContainer);
264  vtxContainer->push_back(ptr.release());
265 }

◆ initialize()

StatusCode ReVertex::initialize ( )
overridevirtual

Definition at line 84 of file ReVertex.cxx.

84  {
85  ATH_MSG_DEBUG("in initialize()");
86  if(m_TrackIndices.empty()) {
87  ATH_MSG_FATAL("No Indices provided");
88  return StatusCode::FAILURE;
89  }
90  ATH_CHECK(m_iVertexFitter.retrieve());
91  ATH_CHECK(m_v0Tools.retrieve());
92  ATH_CHECK(m_pvRefitter.retrieve());
93  ATH_CHECK(m_vertexEstimator.retrieve());
94  m_VKVFitter = dynamic_cast<Trk::TrkVKalVrtFitter*>(&(*m_iVertexFitter));
95  if(m_VKVFitter==nullptr) return StatusCode::FAILURE;
96  ATH_CHECK(m_OutputContainerName.initialize());
97  ATH_CHECK(m_inputContainerName.initialize());
99  ATH_CHECK(m_pvContainerName.initialize());
100  ATH_CHECK(m_refPVContainerName.initialize());
102  ATH_CHECK(m_RelinkContainers.initialize());
103  ATH_CHECK(m_CollectionsToCheck.initialize());
104  return StatusCode::SUCCESS;
105 }

Member Data Documentation

◆ m_AddPVData

bool DerivationFramework::ReVertex::m_AddPVData {}
private

Definition at line 85 of file ReVertex.h.

◆ m_BMassLower

double DerivationFramework::ReVertex::m_BMassLower {}
private

Definition at line 93 of file ReVertex.h.

◆ m_BMassUpper

double DerivationFramework::ReVertex::m_BMassUpper {}
private

Definition at line 92 of file ReVertex.h.

◆ m_chi2cut

double DerivationFramework::ReVertex::m_chi2cut {}
private

Definition at line 94 of file ReVertex.h.

◆ m_CollectionsToCheck

SG::ReadHandleKeyArray<xAOD::VertexContainer> DerivationFramework::ReVertex::m_CollectionsToCheck {this, "CheckVertexContainers", {}}
private

Definition at line 99 of file ReVertex.h.

◆ m_do3d

bool DerivationFramework::ReVertex::m_do3d {}
private

Definition at line 84 of file ReVertex.h.

◆ m_doMassConst

bool DerivationFramework::ReVertex::m_doMassConst {}
private

Definition at line 87 of file ReVertex.h.

◆ m_DoVertexType

int DerivationFramework::ReVertex::m_DoVertexType {}
private

Definition at line 82 of file ReVertex.h.

◆ m_eventInfo_key

SG::ReadHandleKey<xAOD::EventInfo> DerivationFramework::ReVertex::m_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"}
private

Definition at line 80 of file ReVertex.h.

◆ m_hypoNames

std::vector<std::string> DerivationFramework::ReVertex::m_hypoNames
private

Definition at line 76 of file ReVertex.h.

◆ m_indices

std::vector<int> DerivationFramework::ReVertex::m_indices
private

Definition at line 73 of file ReVertex.h.

◆ m_inputContainerName

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::ReVertex::m_inputContainerName
private

Definition at line 66 of file ReVertex.h.

◆ m_iVertexFitter

ToolHandle< Trk::IVertexFitter > DerivationFramework::ReVertex::m_iVertexFitter
private

Definition at line 63 of file ReVertex.h.

◆ m_massConst

double DerivationFramework::ReVertex::m_massConst {}
private

Definition at line 74 of file ReVertex.h.

◆ m_OutputContainerName

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::ReVertex::m_OutputContainerName
private

Definition at line 65 of file ReVertex.h.

◆ m_PV_max

int DerivationFramework::ReVertex::m_PV_max {}
private

Definition at line 81 of file ReVertex.h.

◆ m_PV_minNTracks

size_t DerivationFramework::ReVertex::m_PV_minNTracks {}
private

Definition at line 83 of file ReVertex.h.

◆ m_pvContainerName

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::ReVertex::m_pvContainerName
private

Definition at line 69 of file ReVertex.h.

◆ m_pvRefitter

ToolHandle<Analysis::PrimaryVertexRefitter> DerivationFramework::ReVertex::m_pvRefitter
private

Definition at line 79 of file ReVertex.h.

◆ m_refitPV

bool DerivationFramework::ReVertex::m_refitPV {}
private

Definition at line 86 of file ReVertex.h.

◆ m_refPVContainerName

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::ReVertex::m_refPVContainerName
private

Definition at line 68 of file ReVertex.h.

◆ m_RelinkContainers

SG::ReadHandleKeyArray<xAOD::TrackParticleContainer> DerivationFramework::ReVertex::m_RelinkContainers {this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" }
private

Definition at line 100 of file ReVertex.h.

◆ m_startingpoint0

bool DerivationFramework::ReVertex::m_startingpoint0 {}
private

Definition at line 88 of file ReVertex.h.

◆ m_totalMassConst

double DerivationFramework::ReVertex::m_totalMassConst {}
private

Definition at line 75 of file ReVertex.h.

◆ m_trackContainer

SG::ReadHandleKey<xAOD::TrackParticleContainer> DerivationFramework::ReVertex::m_trackContainer
private

Definition at line 67 of file ReVertex.h.

◆ m_TrackIndices

std::vector<int> DerivationFramework::ReVertex::m_TrackIndices
private

Definition at line 61 of file ReVertex.h.

◆ m_trkDeltaZ

double DerivationFramework::ReVertex::m_trkDeltaZ {}
private

Definition at line 95 of file ReVertex.h.

◆ m_trkMasses

std::vector<double> DerivationFramework::ReVertex::m_trkMasses
private

Definition at line 72 of file ReVertex.h.

◆ m_useAdditionalTrack

bool DerivationFramework::ReVertex::m_useAdditionalTrack {}
private

Definition at line 97 of file ReVertex.h.

◆ m_v0Tools

ToolHandle<Trk::V0Tools> DerivationFramework::ReVertex::m_v0Tools
private

Definition at line 78 of file ReVertex.h.

◆ m_vertexEstimator

ToolHandle< InDet::VertexPointEstimator > DerivationFramework::ReVertex::m_vertexEstimator
private

Definition at line 62 of file ReVertex.h.

◆ m_vertexFittingWithPV

bool DerivationFramework::ReVertex::m_vertexFittingWithPV {}
private

Definition at line 90 of file ReVertex.h.

◆ m_VKVFitter

Trk::TrkVKalVrtFitter* DerivationFramework::ReVertex::m_VKVFitter {}
private

Definition at line 64 of file ReVertex.h.


The documentation for this class was generated from the following files:
DerivationFramework::ReVertex::m_refPVContainerName
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
Definition: ReVertex.h:68
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
Trk::y
@ y
Definition: ParamDefs.h:56
Analysis::JpsiUpsilonCommon::ClosestRefPV
static Analysis::CleanUpVertex ClosestRefPV(xAOD::BPhysHelper &, const xAOD::VertexContainer *, const Analysis::PrimaryVertexRefitter *)
Definition: JpsiUpsilonCommon.cxx:94
DerivationFramework::ReVertex::m_TrackIndices
std::vector< int > m_TrackIndices
Definition: ReVertex.h:61
Analysis::CleanUpVertex
Definition: JpsiUpsilonCommon.h:22
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:65
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:273
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
DerivationFramework::ReVertex::m_massConst
double m_massConst
Definition: ReVertex.h:74
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:57
DerivationFramework::ReVertex::m_PV_minNTracks
size_t m_PV_minNTracks
Definition: ReVertex.h:83
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
DerivationFramework::ReVertex::m_vertexFittingWithPV
bool m_vertexFittingWithPV
Definition: ReVertex.h:90
DerivationFramework::ReVertex::m_useAdditionalTrack
bool m_useAdditionalTrack
Definition: ReVertex.h:97
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
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.
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
DerivationFramework::ReVertex::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: ReVertex.h:80
DerivationFramework::ReVertex::m_chi2cut
double m_chi2cut
Definition: ReVertex.h:94
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:76
DerivationFramework::ReVertex::m_inputContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_inputContainerName
Definition: ReVertex.h:66
LArG4FSStartPointFilter.evt
evt
Definition: LArG4FSStartPointFilter.py:42
DerivationFramework::ReVertex::m_VKVFitter
Trk::TrkVKalVrtFitter * m_VKVFitter
Definition: ReVertex.h:64
Analysis::JpsiUpsilonCommon::isContainedIn
static bool isContainedIn(const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticle * > &)
Definition: JpsiUpsilonCommon.cxx:58
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
DerivationFramework::ReVertex::m_vertexEstimator
ToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition: ReVertex.h:62
runBeamSpotCalibration.helper
helper
Definition: runBeamSpotCalibration.py:112
DerivationFramework::ReVertex::m_trackContainer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackContainer
Definition: ReVertex.h:67
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
DerivationFramework::ReVertex::m_refitPV
bool m_refitPV
Definition: ReVertex.h:86
xAOD::BPhysHypoHelper
Definition: BPhysHypoHelper.h:73
Trk::TrkVKalVrtFitter::setMassForConstraint
virtual void setMassForConstraint(double Mass, IVKalState &istate) const override final
Definition: SetFitOptions.cxx:134
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
DerivationFramework::ReVertex::m_pvRefitter
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
Definition: ReVertex.h:79
DerivationFramework::ReVertex::m_BMassUpper
double m_BMassUpper
Definition: ReVertex.h:92
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
python.TrigInDetConfig.inputTracks
inputTracks
Definition: TrigInDetConfig.py:190
lumiFormat.i
int i
Definition: lumiFormat.py:85
DerivationFramework::ReVertex::m_RelinkContainers
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_RelinkContainers
Definition: ReVertex.h:100
DerivationFramework::ReVertex::m_trkMasses
std::vector< double > m_trkMasses
Definition: ReVertex.h:72
beamspotman.n
n
Definition: beamspotman.py:731
DerivationFramework::ReVertex::m_indices
std::vector< int > m_indices
Definition: ReVertex.h:73
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
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:82
DerivationFramework::ReVertex::m_do3d
bool m_do3d
Definition: ReVertex.h:84
DerivationFramework::ReVertex::m_v0Tools
ToolHandle< Trk::V0Tools > m_v0Tools
Definition: ReVertex.h:78
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
xAOD::Vertex_v1::clearTracks
void clearTracks()
Remove all tracks from the vertex.
Definition: Vertex_v1.cxx:331
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
Analysis::JpsiUpsilonCommon::RelinkVertexTracks
static void RelinkVertexTracks(const std::vector< const xAOD::TrackParticleContainer * > &trkcols, xAOD::Vertex *vtx)
Definition: JpsiUpsilonCommon.cxx:126
DerivationFramework::ReVertex::m_PV_max
int m_PV_max
Definition: ReVertex.h:81
DerivationFramework::ReVertex::m_AddPVData
bool m_AddPVData
Definition: ReVertex.h:85
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
DerivationFramework::ReVertex::m_BMassLower
double m_BMassLower
Definition: ReVertex.h:93
python.PyAthena.v
v
Definition: PyAthena.py:154
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
DerivationFramework::ReVertex::m_totalMassConst
double m_totalMassConst
Definition: ReVertex.h:75
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
DerivationFramework::ReVertex::m_doMassConst
bool m_doMassConst
Definition: ReVertex.h:87
DerivationFramework::ReVertex::m_startingpoint0
bool m_startingpoint0
Definition: ReVertex.h:88
python.changerun.pv
pv
Definition: changerun.py:81
Analysis::JpsiUpsilonCommon
Definition: JpsiUpsilonCommon.h:39
str
Definition: BTagTrackIpAccessor.cxx:11
DerivationFramework::ReVertex::m_pvContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerName
Definition: ReVertex.h:69
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:213
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
DerivationFramework::ReVertex::m_iVertexFitter
ToolHandle< Trk::IVertexFitter > m_iVertexFitter
Definition: ReVertex.h:63
Trk::x
@ x
Definition: ParamDefs.h:55
DerivationFramework::ReVertex::m_CollectionsToCheck
SG::ReadHandleKeyArray< xAOD::VertexContainer > m_CollectionsToCheck
Definition: ReVertex.h:99
DerivationFramework::ReVertex::m_trkDeltaZ
double m_trkDeltaZ
Definition: ReVertex.h:95
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
Trk::TrkVKalVrtFitter
Definition: TrkVKalVrtFitter.h:67