ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TrigPrimaryVertexFitter Class Reference

#include <TrigPrimaryVertexFitter.h>

Inheritance diagram for TrigPrimaryVertexFitter:
Collaboration diagram for TrigPrimaryVertexFitter:

Public Member Functions

 TrigPrimaryVertexFitter (const std::string &, const std::string &, const IInterface *)
 
virtual ~TrigPrimaryVertexFitter ()
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual TrigVertexfit (const TrackCollection *, TrackCollection &, double z=0.0) const
 
virtual TrigVertexfit (const TrackCollection *, std::vector< double > &, double z=0.0) const
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
 
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

int m_numIter
 
double m_zVariance
 
double m_maxChi2Increase
 
double m_chi2cut
 
double m_chi2cut_loose
 
bool m_createTrackLists
 
double m_xyVariance
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 11 of file TrigPrimaryVertexFitter.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrigPrimaryVertexFitter()

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

Definition at line 31 of file TrigPrimaryVertexFitter.cxx.

33  : AthAlgTool(t,n,p),
34  m_createTrackLists(false),
35  m_xyVariance(10.0)
36 {
37  declareInterface< ITrigPrimaryVertexFitter >( this );
38  declareProperty( "numberOfIterations", m_numIter=3);
39  declareProperty( "maxChi2Increase", m_maxChi2Increase=1000.0);
40  declareProperty( "zVariance", m_zVariance=1.0);
41  declareProperty( "Chi2Cut", m_chi2cut=15.0);
42  declareProperty( "Chi2CutLoose", m_chi2cut_loose=100.0);
43  declareProperty( "CreateTrackLists", m_createTrackLists=false);
44  declareProperty( "xyVariance", m_xyVariance=10.0);
45 }

◆ ~TrigPrimaryVertexFitter()

TrigPrimaryVertexFitter::~TrigPrimaryVertexFitter ( )
virtual

Definition at line 63 of file TrigPrimaryVertexFitter.cxx.

64 {
65 
66 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode TrigPrimaryVertexFitter::finalize ( )
virtual

Definition at line 57 of file TrigPrimaryVertexFitter.cxx.

58 {
60  return StatusCode::SUCCESS;
61 }

◆ fit() [1/2]

TrigVertex * TrigPrimaryVertexFitter::fit ( const TrackCollection tc,
std::vector< double > &  Chi2V,
double  z = 0.0 
) const
virtual

Implements ITrigPrimaryVertexFitter.

Definition at line 169 of file TrigPrimaryVertexFitter.cxx.

170 {
171 
172  TrigVertex* pVertex=NULL;
173 
174  double chi2;
175  int ndof;
176 
177  std::vector<TrigPrimaryVertexTrack*> tracks;
178  tracks.clear();
179  Chi2V.clear();
180  int idx=1;
181  for(TrackCollection::const_iterator ptIt=tc->begin();ptIt!=tc->end();++ptIt)
182  {
184  if(pT!=NULL)
185  {
186  pT->setIndex(idx++);
187  tracks.push_back(pT);
188  Chi2V.push_back(-100.0);
189  }
190  }
191 
192  TrigL2Vertex* pV = new TrigL2Vertex();
193 
194  // 1. preliminary fit
195 
196  pV->getParametersVector()[0]=0.0;
197  pV->getParametersVector()[1]=0.0;
198  pV->getParametersVector()[2]=z0;
199 
200  memset(&pV->m_Gk[0][0],0,sizeof(pV->m_Gk));
201  pV->m_Gk[0][0]=m_xyVariance*m_xyVariance;
202  pV->m_Gk[1][1]=m_xyVariance*m_xyVariance;
203  pV->m_Gk[2][2]=m_zVariance*m_zVariance;
204 
205  bool fitFailed=false;
206  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
207  {
208  double dchi2=(*it)->getChi2Distance(pV);
209  if(std::isnan(dchi2)||(dchi2<0.0)||(dchi2>m_maxChi2Increase))
210  {
211  fitFailed=true;
212  break;
213  }
214  if(dchi2<m_chi2cut_loose) (*it)->updateVertex(pV);
215  }
216  if(fitFailed)
217  {
218  delete pV;
220  it!=tracks.end();++it) delete (*it);
221  return pVertex;
222  }
223 
224  // 2. calculation of "smoothed" chi2s
225 
226  memset(&pV->m_Gk[0][0],0,sizeof(pV->m_Gk));
227 
228  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
229  {
230  double dchi2=(*it)->getChi2Distance(pV);
231  ATH_MSG_DEBUG("Track "<<(*it)->getIndex()<<" dchi2="<<dchi2 );
232  }
233 
234  // 3. sort tracks in accordance with their chi2s
235 
236  std::sort(tracks.begin(),tracks.end(),TrigPrimaryTrackSortPredicate());
237 
238  // 4. Final track fit
239 
240  pV->getParametersVector()[0]=0.0;
241  pV->getParametersVector()[1]=0.0;
242  pV->getParametersVector()[2]=z0;
243  fitFailed=false;
244  chi2=0.0;ndof=-3;
245  for(int nIter=0;nIter<m_numIter;nIter++)
246  {
247  memset(&pV->m_Gk[0][0],0,sizeof(pV->m_Gk));
248  pV->m_Gk[0][0]=100.0;
249  pV->m_Gk[1][1]=100.0;
250  pV->m_Gk[2][2]=m_zVariance*m_zVariance;
251  chi2=0.0;ndof=-3;
252  fitFailed=false;
253 
254  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
255  {
256  double dchi2=(*it)->getChi2Distance(pV);
257  Chi2V[(*it)->getIndex()-1]=dchi2;
258  ATH_MSG_VERBOSE("Track "<<(*it)->getIndex()<<" dchi2="<<dchi2 );
259  if(std::isnan(dchi2)||(dchi2<0.0)||(dchi2>m_maxChi2Increase))
260  {
261  fitFailed=true;
262  break;
263  }
264  if(dchi2<m_chi2cut)
265  {
266  chi2+=dchi2;ndof+=2;
267  (*it)->updateVertex(pV);
268  }
269  else
270  {
271  ATH_MSG_DEBUG("Skipping track "<<(*it)->getIndex()<<"due to large dchi2="<<dchi2 );
272  }
273  }
274  if(fitFailed) break;
275  }
276  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
277  {
278  delete (*it);
279  }
280 
281  if(!fitFailed && (ndof>0))
282  {
283  ATH_MSG_DEBUG("Primary vertex fit OK, chi2 = "<<chi2<<" NDOF = "<<ndof );
284  ATH_MSG_DEBUG("x= "<<pV->getParametersVector()[0]<<
285  " y= "<<pV->getParametersVector()[1]<<" z= "<<pV->getParametersVector()[2] );
286  double cv[6];
287  cv[0]=pV->m_Gk[0][0];cv[1]=pV->m_Gk[0][1];cv[2]=pV->m_Gk[1][1];
288  cv[3]=pV->m_Gk[0][2];cv[4]=pV->m_Gk[1][2];cv[5]=pV->m_Gk[2][2];
289  pVertex = new TrigVertex(pV->getParametersVector()[0],
290  pV->getParametersVector()[1],
291  pV->getParametersVector()[2],cv,chi2,ndof,NULL);
292  }
293  delete pV;
294 
295  return pVertex;
296 }

◆ fit() [2/2]

TrigVertex * TrigPrimaryVertexFitter::fit ( const TrackCollection tc,
TrackCollection output_tc,
double  z = 0.0 
) const
virtual

Implements ITrigPrimaryVertexFitter.

Definition at line 69 of file TrigPrimaryVertexFitter.cxx.

70 {
71 
72  TrigVertex* pVertex=NULL;
73 
74  double chi2;
75  int ndof;
76 
77  std::vector<TrigPrimaryVertexTrack*> tracks;
78  tracks.clear();
79  int idx=1;
80  for(TrackCollection::const_iterator ptIt=tc->begin();ptIt!=tc->end();++ptIt)
81  {
83  if(pT!=NULL) {
84  pT->setIndex(idx++);
85  tracks.push_back(pT);
86  }
87  }
88 
89  TrigL2Vertex* pV = new TrigL2Vertex();
90 
91  pV->getParametersVector()[0]=0.0;
92  pV->getParametersVector()[1]=0.0;
93  pV->getParametersVector()[2]=z0;
94  bool fitFailed=false;
95  chi2=0.0;ndof=-3;
96  for(int nIter=0;nIter<m_numIter;nIter++)
97  {
98  memset(&pV->m_Gk[0][0],0,sizeof(pV->m_Gk));
99  pV->m_Gk[0][0]=m_xyVariance*m_xyVariance;
100  pV->m_Gk[1][1]=m_xyVariance*m_xyVariance;
101  pV->m_Gk[2][2]=m_zVariance*m_zVariance;
102  chi2=0.0;ndof=-3;
103  fitFailed=false;
104 
105  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
106  {
107  if(!(*it)->isActive())
108  (*it)->activate();
109 
110  double dchi2=(*it)->getChi2Distance(pV);
111  ATH_MSG_VERBOSE("Track "<<(*it)->getIndex()<<" dchi2="<<dchi2 );
112  if(std::isnan(dchi2)||(dchi2<0.0)||(dchi2>m_maxChi2Increase))
113  {
114  fitFailed=true;
115  break;
116  }
117  if(dchi2<m_chi2cut)
118  {
119  chi2+=dchi2;ndof+=2;
120  (*it)->updateVertex(pV);
121  }
122  else
123  {
124  (*it)->mask();
125  ATH_MSG_DEBUG("Skipping track "<<(*it)->getIndex()<<"due to large dchi2="<<dchi2 );
126  }
127  }
128  if(fitFailed) break;
129  }
130 
131 
132  if(!fitFailed && (ndof>0))
133  {
134  ATH_MSG_DEBUG("Primary vertex fit OK, chi2 = "<<chi2<<" NDOF = "<<ndof );
135  ATH_MSG_DEBUG("x= "<<pV->getParametersVector()[0]<<
136  " y= "<<pV->getParametersVector()[1]<<" z= "<<pV->getParametersVector()[2] );
137  double cv[6];
138  cv[0]=pV->m_Gk[0][0];cv[1]=pV->m_Gk[0][1];cv[2]=pV->m_Gk[1][1];
139  cv[3]=pV->m_Gk[0][2];cv[4]=pV->m_Gk[1][2];cv[5]=pV->m_Gk[2][2];
140  if(m_createTrackLists) {
141  output_tc.clear();
142  output_tc.reserve(tracks.size());
143 
144  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it) {
145  if ((*it)->isActive())
146  output_tc.push_back(new Trk::Track(*(*it)->getTrkTrack()));
147  }
148  }
149  pVertex = new TrigVertex(pV->getParametersVector()[0],
150  pV->getParametersVector()[1],
151  pV->getParametersVector()[2],cv,chi2,ndof, nullptr);
152  }
153  delete pV;
154  for(std::vector<TrigPrimaryVertexTrack*>::iterator it=tracks.begin();it!=tracks.end();++it)
155  {
156  delete (*it);
157  }
158  return pVertex;
159 }

◆ initialize()

StatusCode TrigPrimaryVertexFitter::initialize ( )
virtual

Definition at line 47 of file TrigPrimaryVertexFitter.cxx.

48 {
50 
51  ATH_MSG_INFO( "Number of iterations is set to " << m_numIter );
52  ATH_MSG_INFO( "Accuracy of starting z-position is " << m_zVariance<<" mm" );
53  ATH_MSG_INFO( "Track lists created ? " << std::boolalpha<<m_createTrackLists );
54  return StatusCode::SUCCESS;
55 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

static const InterfaceID& ITrigPrimaryVertexFitter::interfaceID ( )
inlinestaticinherited

Definition at line 20 of file ITrigPrimaryVertexFitter.h.

20  {
21  return IID_ITrigPrimaryVertexFitter;
22  }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t<std::is_void_v<std::result_of_t<decltype(&T::renounce)(T)> > && !std::is_base_of_v<SG::VarHandleKeyArray, T> && std::is_base_of_v<Gaudi::DataHandle, T>, void> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_chi2cut

double TrigPrimaryVertexFitter::m_chi2cut
private

Definition at line 23 of file TrigPrimaryVertexFitter.h.

◆ m_chi2cut_loose

double TrigPrimaryVertexFitter::m_chi2cut_loose
private

Definition at line 23 of file TrigPrimaryVertexFitter.h.

◆ m_createTrackLists

bool TrigPrimaryVertexFitter::m_createTrackLists
private

Definition at line 24 of file TrigPrimaryVertexFitter.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_maxChi2Increase

double TrigPrimaryVertexFitter::m_maxChi2Increase
private

Definition at line 23 of file TrigPrimaryVertexFitter.h.

◆ m_numIter

int TrigPrimaryVertexFitter::m_numIter
private

Definition at line 22 of file TrigPrimaryVertexFitter.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_xyVariance

double TrigPrimaryVertexFitter::m_xyVariance
private

Definition at line 25 of file TrigPrimaryVertexFitter.h.

◆ m_zVariance

double TrigPrimaryVertexFitter::m_zVariance
private

Definition at line 23 of file TrigPrimaryVertexFitter.h.


The documentation for this class was generated from the following files:
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
TrigPrimaryVertexFitter::m_createTrackLists
bool m_createTrackLists
Definition: TrigPrimaryVertexFitter.h:24
IDTPM::ndof
float ndof(const U &p)
Definition: TrackParametersHelper.h:132
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
initialize
void initialize()
Definition: run_EoverP.cxx:894
skel.it
it
Definition: skel.GENtoEVGEN.py:396
TrigPrimaryVertexFitter::m_chi2cut
double m_chi2cut
Definition: TrigPrimaryVertexFitter.h:23
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TrigPrimaryVertexFitter::m_numIter
int m_numIter
Definition: TrigPrimaryVertexFitter.h:22
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
TrigPrimaryVertexFitter::m_xyVariance
double m_xyVariance
Definition: TrigPrimaryVertexFitter.h:25
TrigL2Vertex
Definition: TrigL2Vertex.h:146
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
beamspotman.n
n
Definition: beamspotman.py:731
TrigPrimaryVertexTrack
Definition: TrigPrimaryVertexTrack.h:15
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
fitFailed
bool fitFailed
Definition: fbtTestToyMC.cxx:116
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
TRT::Track::z0
@ z0
Definition: InnerDetector/InDetCalibEvent/TRT_CalibData/TRT_CalibData/TrackInfo.h:63
DataVector::clear
void clear()
Erase all the elements in the collection.
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
TrigL2Vertex::m_Gk
double m_Gk[MAX_SIZE_VERT_COVM][MAX_SIZE_VERT_COVM]
Definition: TrigL2Vertex.h:182
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
TrigVertex
Definition: TrigVertex.h:28
TrigL2Vertex::getParametersVector
double * getParametersVector()
returns vector of vertex fit parameters: vertex position + refitted track momenta at-perigee (sic !...
Definition: TrigL2Vertex.cxx:650
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
TrigPrimaryVertexFitter::m_maxChi2Increase
double m_maxChi2Increase
Definition: TrigPrimaryVertexFitter.h:23
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
TrigPrimaryVertexFitter::m_zVariance
double m_zVariance
Definition: TrigPrimaryVertexFitter.h:23
TrigPrimaryTrackSortPredicate
Definition: TrigPrimaryVertexFitter.cxx:162
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
TrigPrimaryVertexFitter::m_chi2cut_loose
double m_chi2cut_loose
Definition: TrigPrimaryVertexFitter.h:23
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528