|
ATLAS Offline Software
|
#include <TrackValidationNtupleWriter.h>
|
| TrackValidationNtupleWriter (const std::string &name, ISvcLocator *pSvcLocator) |
| Standard Athena-Algorithm Constructor. More...
|
|
| ~TrackValidationNtupleWriter () |
| Default Destructor. More...
|
|
StatusCode | initialize () |
| standard Athena-Algorithm method More...
|
|
StatusCode | execute () |
| standard Athena-Algorithm method More...
|
|
StatusCode | finalize () |
| standard Athena-Algorithm method More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
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 | 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 |
|
◆ StoreGateSvc_t
◆ TrackValidationNtupleWriter()
Trk::TrackValidationNtupleWriter::TrackValidationNtupleWriter |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~TrackValidationNtupleWriter()
Trk::TrackValidationNtupleWriter::~TrackValidationNtupleWriter |
( |
| ) |
|
|
default |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Trk::TrackValidationNtupleWriter::execute |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 318 of file TrackValidationNtupleWriter.cxx.
322 ATH_MSG_DEBUG (
"TrackValidationNtupleWriter execute() start");
331 unsigned int nTruthTreeRecordsAtCurrentEvent = 0;
332 std::vector<Trk::ValidationTrackTruthData> truthData;
333 std::vector<HepMC::ConstGenParticlePtr>* selecParticles =
nullptr;
336 std::vector< Trk::GenParticleJet >* genParticleJets =
nullptr;
343 std::string
key =
"G4Truth";
346 msg(MSG::WARNING) <<
"Could not find the McEventCollection" <<
endmsg;
347 return StatusCode::SUCCESS;
368 for (
const auto& genParticle: *selecParticles)
375 if ( genParticle->production_vertex() )
377 generatedTrackPerigee =
m_truthToTrack->makePerigeeParameters( genParticle );
379 ATH_MSG_DEBUG (
"No perigee available for interacting truth particle."
380 <<
" -> This is OK for particles from the TrackRecord, but probably"
381 <<
" a bug for production vertex particles.");
395 truthData.push_back(partData);
406 else ATH_MSG_DEBUG (
"jets found: " << genParticleJets->size());
417 const VxContainer* primaryVertexContainer =
nullptr;
420 if ( !primaryVertexContainer ||
sc.isFailure() ) {
422 delete genParticleJets;
423 return StatusCode::FAILURE;
427 if (primaryVertexContainer) {
428 if (!primaryVertexContainer->
empty())
vertex = &((*primaryVertexContainer)[0]->recVertex());
435 if (
sc.isFailure()) {
437 delete genParticleJets;
447 if (
sc.isFailure()) {
449 delete genParticleJets;
458 (nTruthTreeRecordsAtCurrentEvent,
459 selecParticles ? (
int)selecParticles->size() : 0);
466 if (
sc.isFailure()) {
467 msg(MSG::ERROR) <<
"Failure when filling event data." <<
endmsg;
468 delete genParticleJets;
476 std::vector<unsigned int> truthToJetIndices(selecParticles ? selecParticles->size() : 0);
479 const unsigned int nJetTruthTreeRecordsAtCurrentEvent
483 itrMcJet < genParticleJets->
end() ; ++itrMcJet) {
485 std::vector<int>
indices = (*itrMcJet).getIndicesInEvent();
487 for (std::vector<int>::const_iterator
k =
indices.begin();
k !=
indices.end(); ++
k) {
488 if (*
k >= 0 && *
k <= (
int)selecParticles->size() ) {
489 truthData[*
k].truthToJetIndex = nJetTruthTreeRecordsAtCurrentEvent
490 +
int(itrMcJet - genParticleJets->begin()) + 1;
492 msg(MSG::WARNING) <<
" mistake with jet::indexInEvent !! " << *
k <<
endmsg;
497 nTruthTreeRecordsAtCurrentEvent);
498 if (
sc.isFailure() ){
499 msg(MSG::ERROR) <<
"Jet Truth Ntuple Tool could not fill data" <<
endmsg;
500 delete genParticleJets;
501 return StatusCode::FAILURE;
508 if (
sc.isFailure() ){
509 msg(MSG::ERROR) <<
"Truth Ntuple Tool could not fill data" <<
endmsg;
510 delete genParticleJets;
511 return StatusCode::FAILURE;
515 delete selecParticles;
516 delete genParticleJets;
518 for (; truthDataIter != truthData.end(); ++truthDataIter) {
519 delete (*truthDataIter).truthPerigee;
520 (*truthDataIter).truthPerigee =
nullptr;
522 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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
◆ extraOutputDeps()
const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
57 return Algorithm::extraOutputDeps();
◆ finalize()
StatusCode Trk::TrackValidationNtupleWriter::finalize |
( |
| ) |
|
◆ initialize()
StatusCode Trk::TrackValidationNtupleWriter::initialize |
( |
| ) |
|
standard Athena-Algorithm method
Definition at line 110 of file TrackValidationNtupleWriter.cxx.
112 msg(MSG::INFO) <<
"TrackValidationNtupleWriter initialize()" <<
endmsg;
116 msg(
MSG::FATAL) <<
"joboptions TrackCollection and TrackTruthCollection have different sizes!" <<
endmsg;
118 msg(
MSG::FATAL) <<
" please make sure to set for each TrackCollection the corresponding TrackTruthCollection" <<
endmsg;
119 return StatusCode::FAILURE;
124 if (
sc.isFailure()) {
131 if (
sc.isFailure()) {
140 if (
sc.isFailure()) {
142 msg(MSG::INFO) <<
"Set the ToolHandle to None if track selection is supposed to be disabled" <<
endmsg;
147 msg(MSG::INFO) <<
"Track Selector retrieved" <<
endmsg;
168 if (
sc.isFailure()) {
175 if (
sc.isFailure()) {
199 if (
sc.isFailure()) {
201 <<
" (to write jet data)."<<
endmsg <<
"--> Instead configure "
202 <<
"to empty string if jet data not desired." <<
endmsg;
206 if (
sc.isFailure()) {
208 <<
" (to find jets at truth level)."<<
endmsg;
215 if (
sc.isFailure()) {
221 if (
sc.isFailure())
return sc;
229 SmartIF<ITHistSvc> tHistSvc{service(
"THistSvc")};
237 TTree*
tree =
new TTree((*trackColNameIter).c_str(), ((*trackColNameIter)+
" Validation").c_str());
240 sc = tHistSvc->regTree(fullNtupleName,
tree);
241 if (
sc.isFailure()) {
242 msg(MSG::ERROR) <<
"Unable to register TTree : " << fullNtupleName <<
endmsg;
249 if (((*itTools)->addNtupleItems(
tree)).isFailure()) {
250 msg(MSG::ERROR) <<
"ValidationNtupleTool could not add its branches"
251 <<
" for tree " << fullNtupleName <<
endmsg;
252 return StatusCode::FAILURE;
264 TTree*
tree =
new TTree((*trackParticleColNameIter).c_str(), ((*trackParticleColNameIter)+
" Validation").c_str());
267 sc = tHistSvc->regTree(fullNtupleName,
tree);
268 if (
sc.isFailure()) {
269 msg(MSG::ERROR) <<
"Unable to register TTree : " << fullNtupleName <<
endmsg;
274 if (
sc.isFailure()) {
275 msg(MSG::ERROR) <<
"ValidationNtupleTool could not add its branches for tree " << fullNtupleName <<
endmsg;
293 m_eventLinkTree =
new TTree(
"EventToTrackLink",
"Event to track entry link");
296 if (
sc.isFailure()) {
297 msg(MSG::ERROR) <<
"Unable to register TTree : " << fullNtupleName <<
endmsg;
308 return StatusCode::SUCCESS;
313 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ sysInitialize()
StatusCode AthAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ writeTrackData()
< following methods and atributes are used in derived class TrigTrackValidationNtupleWriter Private method to associate truth to a track
Definition at line 525 of file TrackValidationNtupleWriter.cxx.
533 if (
sc.isFailure()) {
535 return StatusCode::SUCCESS;
541 return StatusCode::SUCCESS;
549 if (
sc.isFailure()) {
552 return StatusCode::SUCCESS;
560 return StatusCode::SUCCESS;
564 const unsigned int nTruthTreeRecordsAtCurrentEvent =
567 int trackTreeIndexBegin =
m_trees[trackColIndex]->GetEntries();
568 int nTracksPerEvent = 0;
572 for ( ; trackIterator < (*tracks).end(); ++trackIterator) {
573 if (!((*trackIterator))) {
582 if (((*itTools)->fillTrackData( *(*trackIterator), 0 )).isFailure()) {
583 ATH_MSG_ERROR (
"Validation Ntuple Tool could not fill track data.");
584 return StatusCode::FAILURE;
587 nTracksPerEvent += 1;
593 TrackTruthCollection::const_iterator truthIterator = trackTruthCollection->find( trackIterator - (*tracks).begin() );
594 if ( truthIterator == trackTruthCollection->end() ){
595 ATH_MSG_DEBUG (
"No matching truth particle found for track");
597 trackTruth = &((*truthIterator).second);
607 if ( genParticle!=
nullptr && genParticle->pdg_id() == 0 ) {
609 <<
" does not conform to PDG requirements... ignore it!" <<
endmsg;
610 genParticle =
nullptr;
623 for (; matchedPartIter != truthData.end(); ++matchedPartIter) {
625 if ((*matchedPartIter).genParticle == genParticle)
break;
627 if (matchedPartIter == truthData.end()) {
631 if ( genParticle->production_vertex() ) {
632 newTrackPerigee =
m_truthToTrack->makePerigeeParameters( genParticle );
633 generatedTrackPerigee = newTrackPerigee;
637 (*matchedPartIter).truthToTrackIndices[trackColIndex].push_back(
m_nTrackTreeRecords[trackColIndex]);
638 (*matchedPartIter).truthToTrackMatchingProbabilities[trackColIndex].push_back(trackTruth->
probability());
639 generatedTrackPerigee = (*matchedPartIter).truthPerigee;
641 truthIndex += nTruthTreeRecordsAtCurrentEvent;
646 if (((*itTools)->fillTrackTruthData( generatedTrackPerigee, *trackTruth, truthIndex )).isFailure()) {
647 ATH_MSG_ERROR (
"Validation Ntuple Tool could not fill track truth data.");
648 delete newTrackPerigee;
649 return StatusCode::FAILURE;
653 delete newTrackPerigee;
658 m_trees[trackColIndex]->Fill();
661 (*itTools)->resetVariables();
672 (trackColIndex, trackTreeIndexBegin, nTracksPerEvent );
674 return StatusCode::SUCCESS;
◆ writeTrackParticleData()
StatusCode Trk::TrackValidationNtupleWriter::writeTrackParticleData |
( |
unsigned int |
trackParticleColIndex | ) |
|
|
protected |
method to write track particle data to Ntuple.
Rec::Track particles are retrived from the SG
Definition at line 677 of file TrackValidationNtupleWriter.cxx.
688 return StatusCode::SUCCESS;
694 return StatusCode::SUCCESS;
699 int nTrkParticlesPerEvent = 0;
703 for ( ; trackParticleIterator < (*trackParticles).end(); ++trackParticleIterator) {
704 if (!((*trackParticleIterator))) {
710 msg(MSG::ERROR) <<
"Validation Ntuple Tool could not fill track data." <<
endmsg;
711 return StatusCode::FAILURE;
713 nTrkParticlesPerEvent += 1;
716 msg(MSG::ERROR) <<
"Validation Ntuple Tool could not write track data." <<
endmsg;
717 return StatusCode::FAILURE;
724 m_eventPropertyNtupleTools[toolIndex]->setTrackTreeIndices(trackParticleColIndex, trackTreeIndexBegin, nTrkParticlesPerEvent );
728 return StatusCode::SUCCESS;
◆ m_detStore
◆ m_doTrackParticle
bool Trk::TrackValidationNtupleWriter::m_doTrackParticle |
|
protected |
◆ m_doTruth
bool Trk::TrackValidationNtupleWriter::m_doTruth |
|
protected |
◆ m_eventLinkTree
TTree* Trk::TrackValidationNtupleWriter::m_eventLinkTree |
|
protected |
◆ m_eventPropertyNtupleHandles
◆ m_eventPropertyNtupleTools
◆ m_evtStore
◆ m_extendedExtraObjects
DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_genJetFinder
◆ m_genPartSelector
◆ m_inputPrimaryVertexCollection
std::string Trk::TrackValidationNtupleWriter::m_inputPrimaryVertexCollection |
|
protected |
◆ m_inputTrackCollection
std::vector<std::string> Trk::TrackValidationNtupleWriter::m_inputTrackCollection |
|
protected |
◆ m_inputTrackParticleCollection
std::vector<std::string> Trk::TrackValidationNtupleWriter::m_inputTrackParticleCollection |
|
protected |
◆ m_jetTruthNtupleTool
◆ m_McEventCollectionName
std::string Trk::TrackValidationNtupleWriter::m_McEventCollectionName |
|
protected |
◆ m_nTrackTreeRecords
std::vector<unsigned int> Trk::TrackValidationNtupleWriter::m_nTrackTreeRecords |
|
protected |
◆ m_ntupleDirName
std::string Trk::TrackValidationNtupleWriter::m_ntupleDirName |
|
protected |
◆ m_ntupleFileName
std::string Trk::TrackValidationNtupleWriter::m_ntupleFileName |
|
protected |
◆ m_trackSelector
◆ m_trackTruthClassifierHandles
◆ m_trackTruthClassifiers
◆ m_trackTruthCollectionName
std::vector<std::string> Trk::TrackValidationNtupleWriter::m_trackTruthCollectionName |
|
protected |
◆ m_trees
std::vector<TTree*> Trk::TrackValidationNtupleWriter::m_trees |
|
protected |
◆ m_truthNtupleTool
◆ m_truthToTrack
◆ m_useExternalEventLinkTree
bool Trk::TrackValidationNtupleWriter::m_useExternalEventLinkTree |
|
protected |
◆ m_ValidationNtupleTools
◆ m_ValTrkParticleNtupleTool
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_visibleParticleWithoutTruth
Switch to turn on/pff recording track particle trees into Ntuple.
cludge to treat G4's "fake fakes"
Definition at line 99 of file TrackValidationNtupleWriter.h.
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
HepMC::ConstGenParticlePtr scptr() const
Dereference/smart pointer.
Const iterator class for DataVector/DataList.
std::vector< std::string > m_inputTrackCollection
name of the TrackCollection
TTree * m_eventLinkTree
pointer to event-wise ntuple trees (one for all input track collections + truth)
StatusCode writeTrackParticleData(unsigned int trackParticleColIndex)
method to write track particle data to Ntuple.
void classify(ToolHandle< IMCTruthClassifier > &m_classif, const xAOD::TruthParticle *theParticle, unsigned int &particleOutCome, unsigned int &result, int &hadron_pdg, unsigned int &particleType, unsigned int &particleOrigin)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
HepMC::ConstGenParticlePtr genParticle
std::pair< long int, long int > indices
ToolHandleArray< Trk::ITrackValidationNtupleTool > m_ValidationNtupleTools
set of tools for writing Trk::Track into the Ntuple
std::vector< std::vector< unsigned int > > truthToTrackIndices
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool msgLvl(const MSG::Level lvl) const
std::vector< std::vector< float > > truthToTrackMatchingProbabilities
bool m_doTruth
Switch to turn on / off truth.
std::vector< std::string > m_inputTrackParticleCollection
name of the TrackParticleCollection
#define ATH_MSG_VERBOSE(x)
HepMC::GenParticlePtr m_visibleParticleWithoutTruth
Switch to turn on/pff recording track particle trees into Ntuple.
virtual void setOwner(IDataHandleHolder *o)=0
std::string m_ntupleFileName
jobOption: Ntuple file name
HepMC::ConstGenParticlePtr cptr() const
Dereference.
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
std::string m_inputPrimaryVertexCollection
SG key of the input primary vertex collection (used by the track selector)
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::vector< Trk::IEventPropertyNtupleTool * > m_eventPropertyNtupleTools
list of event property tools
ToolHandleArray< Trk::IEventPropertyNtupleTool > m_eventPropertyNtupleHandles
jobO: list of event property tools
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
::StatusCode StatusCode
StatusCode definition for legacy code.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
ToolHandle< Trk::IValidationNtupleTool > m_ValTrkParticleNtupleTool
Tool for writting Rec::TrackParticle into the Ntuple – OBSOLETE.
ToolHandle< Trk::IGenParticleSelector > m_genPartSelector
Tool handle to the Trk::IGenParticleSelector.
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
bool isValid() const
Validity check.
const HepMcParticleLink & particleLink() const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const GenParticle * ConstGenParticlePtr
ToolHandleArray< Trk::ITrackTruthClassifier > m_trackTruthClassifierHandles
jobO: list of truth classifiers
std::string m_ntupleDirName
jobOption: Ntuple directory name
ToolHandle< Trk::ITrackSelectorTool > m_trackSelector
Tool handle to the Trk::ITrackSelectorTool.
ToolHandle< Trk::IGenParticleJetFinder > m_genJetFinder
Tool to find jets.
DataObjIDColl m_extendedExtraObjects
MC particle associated with a reco track + the quality of match.
ToolHandle< Trk::ITruthNtupleTool > m_truthNtupleTool
std::vector< unsigned int > classifications
const Trk::TrackParameters * truthPerigee
GenParticlePtr newGenParticlePtr(const HepMC::FourVector &mom=HepMC::FourVector(0.0, 0.0, 0.0, 0.0), int pid=0, int status=0)
StatusCode writeTrackData(unsigned int trackColIndex, std::vector< Trk::ValidationTrackTruthData > &truthData, const Trk::Vertex *primaryVertex=NULL)
< following methods and atributes are used in derived class TrigTrackValidationNtupleWriter Private m...
ToolHandle< Trk::IJetTruthNtupleTool > m_jetTruthNtupleTool
std::string m_McEventCollectionName
name of the McEventCollection
std::vector< std::string > m_trackTruthCollectionName
name of the TrackTruthCollection
#define ATH_MSG_WARNING(x)
std::vector< TTree * > m_trees
Pointer to the NTuple trees (one for each input track collection)
float probability() const
std::vector< unsigned int > m_nTrackTreeRecords
ToolHandle< Trk::ITruthToTrack > m_truthToTrack
Tool handle to the Trk::TruthToTrack tool.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
AthAlgorithm()
Default constructor:
int generations(const T &p)
Method to return how many interactions a particle has undergone during simulation (TODO migrate to be...
std::vector< const Trk::ITrackTruthClassifier * > m_trackTruthClassifiers
the truth classifiers
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool empty() const noexcept
Returns true if the collection is empty.
bool m_useExternalEventLinkTree
if TVNW should make event tree itself or assume CBNT does