15 #include "GaudiKernel/ITHistSvc.h"
31 m_collectionType(s_trackTypeName),
32 m_eventLinkTree(nullptr),
34 m_trackIndexBegin(std::vector<int>()),
35 m_nTracksPerEvent(std::vector<int>()),
36 m_genParticleIndexBegin(0),
37 m_nGenParticlesPerEvent(0)
39 declareInterface<IEventPropertyNtupleTool>(
this);
40 declareProperty(
"CollectionType",m_collectionType,
"Type of collection which associated with this instance ["
41 +s_trackTypeName+
", "+s_trkParticleTypeName+
", "+s_trkParticleTrigTypeName+
", "+s_inDetTrackTrigTypeName+
"]");
48 if(checkCollectionType().isFailure())
return StatusCode::FAILURE;
55 return StatusCode::SUCCESS;
59 m_trackCollections = collections;
61 m_trackIndexBegin.resize(m_trackCollections.size());
62 m_nTracksPerEvent.resize(m_trackCollections.size());
66 if (!
tree)
return StatusCode::FAILURE;
69 m_eventLinkTree =
tree;
70 for (
unsigned int tColIndex = 0; tColIndex<m_trackCollections.size(); tColIndex++) {
71 m_eventLinkTree->Branch((cbnt_prefix+m_trackCollections[tColIndex]+
"IndexBegin").c_str(),
72 &(m_trackIndexBegin.at(tColIndex)) );
73 m_eventLinkTree->Branch((cbnt_prefix+
"n"+m_trackCollections[tColIndex]+
"PerEvent").c_str(),
74 &(m_nTracksPerEvent.at(tColIndex)) );
77 m_eventLinkTree->Branch((cbnt_prefix+
"GenParticlesIndexBegin").c_str(), &m_genParticleIndexBegin );
78 m_eventLinkTree->Branch((cbnt_prefix+
"nGenParticlesPerEvent").c_str(), &m_nGenParticlesPerEvent );
80 return StatusCode::SUCCESS;
84 (
unsigned int tColIndex,
86 int nTracksPerEvent ) {
88 ATH_MSG_VERBOSE (
"Collection index "<<tColIndex<<
"\tm_trackIndexBegin\t"<< m_trackIndexBegin.size() );
89 m_trackIndexBegin[tColIndex] = indexBegin;
90 m_nTracksPerEvent[tColIndex] = nTracksPerEvent;
91 if (m_nTracksPerEvent[tColIndex]==0) m_trackIndexBegin[tColIndex]=0;
96 int nGenParticlesPerEvent) {
97 m_genParticleIndexBegin = indexBegin;
98 m_nGenParticlesPerEvent = nGenParticlesPerEvent;
102 return StatusCode::SUCCESS;
106 return StatusCode::SUCCESS;
110 if(( m_collectionType != s_trackTypeName) && (m_collectionType != s_trkParticleTypeName) && (m_collectionType != s_trkParticleTrigTypeName) && (m_collectionType != s_inDetTrackTrigTypeName)) {
111 ATH_MSG_ERROR (
"Recieved collection type: "<< m_collectionType
112 <<
"does not correspond to any of following types:"<< s_trackTypeName
113 <<
", "<<s_trkParticleTypeName <<
", "<<s_trkParticleTrigTypeName
114 <<
", "<<s_inDetTrackTrigTypeName);
116 return StatusCode::FAILURE;
118 return StatusCode::SUCCESS;