ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
top::TrackSystematicsMaker Class Referencefinal

#include <TrackSystematicsMaker.h>

Inheritance diagram for top::TrackSystematicsMaker:
Collaboration diagram for top::TrackSystematicsMaker:

Public Member Functions

 TrackSystematicsMaker (const std::string &name)
 
virtual ~TrackSystematicsMaker ()
 
 TrackSystematicsMaker (const TrackSystematicsMaker &rhs)=delete
 
 TrackSystematicsMaker (TrackSystematicsMaker &&rhs)=delete
 
TrackSystematicsMakeroperator= (const TrackSystematicsMaker &rhs)=delete
 
StatusCode initialize ()
 Dummy implementation of the initialisation function. More...
 
StatusCode execute (bool)
 
const std::list< CP::SystematicSet > & specifiedSystematics () const
 
const std::list< CP::SystematicSet > & recommendedSystematics () const
 
virtual void specifiedSystematics (const std::set< std::string > &specifiedSystematics)
 Specify the systematics to be used. More...
 
virtual void print () const
 Print the state of the tool. 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 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
 

Protected Member Functions

StatusCode applyTruthFilterSystematic (InDet::InDetTrackTruthFilterTool *tool, const CP::SystematicSet &syst) const
 
StatusCode applySmearingSystematic (InDet::InDetTrackSmearingTool *tool, const CP::SystematicSet &syst) const
 
StatusCode applyBiasingSystematic (InDet::InDetTrackBiasingTool *tool, const CP::SystematicSet &syst) const
 
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

StatusCode retrieveTrackCPTool ()
 
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

std::shared_ptr< top::TopConfigm_config
 
std::vector< std::uint32_t > m_runPeriods
 
std::list< CP::SystematicSetm_specifiedSystematics
 
std::list< CP::SystematicSetm_recommendedSystematics
 
CP::SystematicSet m_nominalSystematicSet
 
struct {
   std::vector< CP::SystematicSet >   smearing
 
   std::vector< CP::SystematicSet >   truthFilter
 
   std::vector< CP::SystematicSet >   bias
 
m_systs
 
ToolHandle< InDet::InDetTrackSmearingToolm_smearingTool
 
std::vector< ToolHandle< InDet::InDetTrackBiasingTool > > m_biasTool
 
ToolHandle< InDet::InDetTrackTruthOriginToolm_truthOriginTool
 
ToolHandle< InDet::InDetTrackTruthFilterToolm_truthFilterTool
 
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 44 of file TrackSystematicsMaker.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

◆ TrackSystematicsMaker() [1/3]

top::TrackSystematicsMaker::TrackSystematicsMaker ( const std::string &  name)
explicit

Definition at line 33 of file TrackSystematicsMaker.cxx.

35  m_config(nullptr),
36  m_runPeriods(),
40  m_smearingTool("top::TrackCPTools::InDetTrackSmearingTool"),
41  m_truthOriginTool("top::TrackCPTools::InDetTrackTruthOriginTool"),
42  m_truthFilterTool("top::TrackCPTools::InDetTrackTruthFilterTool")
43  {
44  declareProperty("config", m_config);
45  }

◆ ~TrackSystematicsMaker()

top::TrackSystematicsMaker::~TrackSystematicsMaker ( )
virtual

Definition at line 47 of file TrackSystematicsMaker.cxx.

47  {
48  }

◆ TrackSystematicsMaker() [2/3]

top::TrackSystematicsMaker::TrackSystematicsMaker ( const TrackSystematicsMaker rhs)
delete

◆ TrackSystematicsMaker() [3/3]

top::TrackSystematicsMaker::TrackSystematicsMaker ( TrackSystematicsMaker &&  rhs)
delete

Member Function Documentation

◆ applyBiasingSystematic()

StatusCode top::TrackSystematicsMaker::applyBiasingSystematic ( InDet::InDetTrackBiasingTool tool,
const CP::SystematicSet syst 
) const
protected

– Inform the tool –///

– Save corrected xAOD Container to StoreGate / TStore –///

Definition at line 184 of file TrackSystematicsMaker.cxx.

185  {
186 
187  if(m_config->sgKeyTracks(syst.hash()) == "InDetTrackParticles_")
188  return StatusCode::SUCCESS;
189 
190 
191  // Create a shallow copy of InDetTrackParticles:
192  const xAOD::TrackParticleContainer *tp(nullptr);
193  top::check(evtStore()->retrieve(tp, "InDetTrackParticles"), "Retrieve InDetParticles");
194 
195  std::pair< xAOD::TrackParticleContainer*, xAOD::ShallowAuxContainer* > shallow_xaod_copy = xAOD::shallowCopyContainer( *tp );
196 
198  top::check(tool->applySystematicVariation(syst),
199  "Failed to configure tool for systematic variation");
200 
201  for ( xAOD::TrackParticle* trkCpy : *(shallow_xaod_copy.first) ) {
202 
203  top::check(tool->applyCorrection(*trkCpy), "Failure to apply track systematic");
204 
205  }
206 
208  std::string outputSGKey = m_config->sgKeyTracks(syst.hash());
209  std::string outputSGKeyAux = outputSGKey + "Aux.";
210 
211  StatusCode save = evtStore()->tds()->record(shallow_xaod_copy.first, outputSGKey);
212  StatusCode saveAux = evtStore()->tds()->record(shallow_xaod_copy.second, outputSGKeyAux);
213 
214  if (!save || !saveAux) {
215  return StatusCode::FAILURE;
216  }
217 
218  return StatusCode::SUCCESS;
219  }

◆ applySmearingSystematic()

StatusCode top::TrackSystematicsMaker::applySmearingSystematic ( InDet::InDetTrackSmearingTool tool,
const CP::SystematicSet syst 
) const
protected

– Inform the tool –///

– Save corrected xAOD Container to StoreGate / TStore –///

Definition at line 146 of file TrackSystematicsMaker.cxx.

147  {
148 
149 
150  if(m_config->sgKeyTracks(syst.hash()) == "InDetTrackParticles_")
151  return StatusCode::SUCCESS;
152 
153  // Create a shallow copy of InDetTrackParticles:
154  const xAOD::TrackParticleContainer *tp(nullptr);
155  top::check(evtStore()->retrieve(tp, "InDetTrackParticles"), "Retrieve InDetParticles");
156 
157  std::pair< xAOD::TrackParticleContainer*, xAOD::ShallowAuxContainer* > shallow_xaod_copy = xAOD::shallowCopyContainer( *tp );
158 
160  top::check(tool->applySystematicVariation(syst), "Failed to configure tool for systematic variation");
161 
162 
163  for ( xAOD::TrackParticle* trkCpy : *(shallow_xaod_copy.first) ) {
164 
165  top::check(tool->applyCorrection(*trkCpy), "Failure to apply track systematic");
166 
167  }
168 
170  std::string outputSGKey = m_config->sgKeyTracks(syst.hash());
171  std::string outputSGKeyAux = outputSGKey + "Aux.";
172 
173 
174  StatusCode save = evtStore()->tds()->record(shallow_xaod_copy.first, outputSGKey);
175  StatusCode saveAux = evtStore()->tds()->record(shallow_xaod_copy.second, outputSGKeyAux);
176 
177  if (!save || !saveAux) {
178  return StatusCode::FAILURE;
179  }
180 
181  return StatusCode::SUCCESS;
182  }

◆ applyTruthFilterSystematic()

StatusCode top::TrackSystematicsMaker::applyTruthFilterSystematic ( InDet::InDetTrackTruthFilterTool tool,
const CP::SystematicSet syst 
) const
protected

– Inform the tool –///

– Save corrected xAOD Container to StoreGate / TStore –///

Definition at line 103 of file TrackSystematicsMaker.cxx.

104  {
105 
106  if(m_config->sgKeyTracks(syst.hash()) == "InDetTrackParticles_")
107  return StatusCode::SUCCESS;
108 
109  // Create a shallow copy of InDetTrackParticles:
110  const xAOD::TrackParticleContainer *tp(nullptr);
111  top::check(evtStore()->retrieve(tp, "InDetTrackParticles"), "Retrieve InDetParticles");
112 
113  std::pair< xAOD::TrackParticleContainer*, xAOD::ShallowAuxContainer* > shallow_xaod_copy = xAOD::shallowCopyContainer( *tp );
114 
116  top::check(tool->applySystematicVariation(syst),
117  "Failed to configure tool for systematic variation");
118 
119 
120 
121  for ( xAOD::TrackParticle* trkCpy : *(shallow_xaod_copy.first) ) {
122 
123 
124  if (not tool->accept(trkCpy)) trkCpy->auxdecor<char>("passTruthFilter") = 0;
125  else trkCpy->auxdecor<char>("passTruthFilter") = 1;
126 
127 
128  }
129 
131  std::string outputSGKey = m_config->sgKeyTracks(syst.hash());
132  std::string outputSGKeyAux = outputSGKey + "Aux.";
133 
134 
135  StatusCode save = evtStore()->tds()->record(shallow_xaod_copy.first, outputSGKey);
136  StatusCode saveAux = evtStore()->tds()->record(shallow_xaod_copy.second, outputSGKeyAux);
137 
138  if (!save || !saveAux) {
139  return StatusCode::FAILURE;
140  }
141 
142  return StatusCode::SUCCESS;
143  }

◆ 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; }

◆ execute()

StatusCode top::TrackSystematicsMaker::execute ( bool  executeNominal)

– Save corrected xAOD Container to StoreGate / TStore –///

– Only run this on the systematic execution –///

– Save corrected xAOD Container to StoreGate / TStore –///

– SMEARING –///

– BIASING –///

– TRUTH FILTER –///

Definition at line 221 of file TrackSystematicsMaker.cxx.

221  {
222  ATH_MSG_DEBUG(" top::TrackSystematicsMaker execute:");
223 
224 
225  if (!m_config->isMC() && executeNominal) {
226 
227  // Create a shallow copy of InDetTrackParticles:
228  const xAOD::TrackParticleContainer *tp(nullptr);
229  top::check(evtStore()->retrieve(tp, "InDetTrackParticles"), "Retrieve InDetParticles");
230 
231  std::pair< xAOD::TrackParticleContainer*, xAOD::ShallowAuxContainer* > shallow_xaod_copy = xAOD::shallowCopyContainer( *tp );
232 
234  std::string outputSGKey = m_config->sgKeyTracks(m_nominalSystematicSet.hash());
235  std::string outputSGKeyAux = outputSGKey + "Aux.";
236 
237  StatusCode save = evtStore()->tds()->record(shallow_xaod_copy.first, outputSGKey);
238  StatusCode saveAux = evtStore()->tds()->record(shallow_xaod_copy.second, outputSGKeyAux);
239 
240  if (!save || !saveAux) {
241  return StatusCode::FAILURE;
242  }
243 
244 
245  return StatusCode::SUCCESS;
246  }
247  if (!m_config->isMC() && !executeNominal) {
248  return StatusCode::SUCCESS;
249  }
250 
251 
253  if (executeNominal){
254 
255  // Create a shallow copy of InDetTrackParticles:
256  const xAOD::TrackParticleContainer *tp(nullptr);
257  top::check(evtStore()->retrieve(tp, "InDetTrackParticles"), "Retrieve InDetParticles");
258 
259  std::pair< xAOD::TrackParticleContainer*, xAOD::ShallowAuxContainer* > shallow_xaod_copy = xAOD::shallowCopyContainer( *tp );
260 
262  std::string outputSGKey = m_config->sgKeyTracks(m_nominalSystematicSet.hash());
263  std::string outputSGKeyAux = outputSGKey + "Aux.";
264 
265  StatusCode save = evtStore()->tds()->record(shallow_xaod_copy.first, outputSGKey);
266  StatusCode saveAux = evtStore()->tds()->record(shallow_xaod_copy.second, outputSGKeyAux);
267 
268  if (!save || !saveAux) {
269  return StatusCode::FAILURE;
270  }
271 
272 
273  return StatusCode::SUCCESS;
274 
275  }
276 
278  for (const auto& syst : m_systs.smearing) {
280  "Failure to apply TrackSystematic");
281  }
282 
284  InDet::InDetTrackBiasingTool* biasingTool {
285  nullptr
286  };
287 
288  if (m_runPeriods.size() == 1) {
289  biasingTool = &(*m_biasTool[0]);
290 
291  top::check(biasingTool, "Failure to selected biasing tool");
292  for (const auto& syst : m_systs.bias) {
293  top::check(applyBiasingSystematic(biasingTool, syst),
294  "Failure to apply TrackSystematic");
295  }
296  }
297  else {
298  const xAOD::EventInfo* ei {
299  nullptr
300  };
301  top::check(evtStore()->retrieve(ei, "EventInfo"),
302  "Failure to retrieve EventInfo");
303 
304  top::check(ei->isAvailable<unsigned int>("RandomRunNumber"),
305  "Require that RandomRunNumber decoration is available.");
306  auto randomRunNumber = ei->auxdataConst<unsigned int>("RandomRunNumber");
307 
308  if (randomRunNumber != 0 ){
309  top::check(m_runPeriods[0] <= randomRunNumber,
310  "RandomRunNumber is below valid range.");
311  top::check(randomRunNumber < m_runPeriods[m_runPeriods.size() - 1],
312  "RandomRunNumber is above valid range.");
313 
314  for (std::size_t i = 1; i < m_runPeriods.size(); ++i) {
315  if (randomRunNumber < m_runPeriods[i]) {
316  biasingTool = &(*m_biasTool[i - 1]);
317  break;
318  }
319  }
320  top::check(biasingTool, "Failure to selected biasing tool");
321  for (const auto& syst : m_systs.bias) {
322  top::check(applyBiasingSystematic(biasingTool, syst),
323  "Failure to apply TrackSystematic");
324  }
325  }
326  }
327 
329  for (const auto& syst : m_systs.truthFilter) {
330 
332  "Failure to apply TrackSystematic");
333  }
334 
335  ATH_MSG_DEBUG(" top::TrackSystematicsMaker completed execute");
336  return StatusCode::SUCCESS;
337  }

◆ 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

◆ getKey()

SG::sgkey_t asg::AsgTool::getKey ( const void *  ptr) const
inherited

Get the (hashed) key of an object that is in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the SG::sgkey_t key for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getName
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The hashed key of the object in the store. If not found, an invalid (zero) key.

Definition at line 119 of file AsgTool.cxx.

119  {
120 
121 #ifdef XAOD_STANDALONE
122  // In case we use @c xAOD::TEvent, we have a direct function call
123  // for this.
124  return evtStore()->event()->getKey( ptr );
125 #else
126  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
127  return ( proxy == nullptr ? 0 : proxy->sgkey() );
128 #endif // XAOD_STANDALONE
129  }

◆ getName()

const std::string & asg::AsgTool::getName ( const void *  ptr) const
inherited

Get the name of an object that is / should be in the event store.

This is a bit of a special one. StoreGateSvc and xAOD::TEvent both provide ways for getting the std::string name for an object that is in the store, based on a bare pointer. But they provide different interfaces for doing so.

In order to allow tools to efficiently perform this operation, they can use this helper function.

See also
asg::AsgTool::getKey
Parameters
ptrThe bare pointer to the object that the event store should know about
Returns
The string name of the object in the store. If not found, an empty string.

Definition at line 106 of file AsgTool.cxx.

106  {
107 
108 #ifdef XAOD_STANDALONE
109  // In case we use @c xAOD::TEvent, we have a direct function call
110  // for this.
111  return evtStore()->event()->getName( ptr );
112 #else
113  const SG::DataProxy* proxy = evtStore()->proxy( ptr );
114  static const std::string dummy = "";
115  return ( proxy == nullptr ? dummy : proxy->name() );
116 #endif // XAOD_STANDALONE
117  }

◆ getProperty()

template<class T >
const T* asg::AsgTool::getProperty ( const std::string &  name) const
inherited

Get one of the tool's properties.

◆ initialize()

StatusCode top::TrackSystematicsMaker::initialize ( )
virtual

Dummy implementation of the initialisation function.

It's here to allow the dual-use tools to skip defining an initialisation function. Since many are doing so...

Reimplemented from asg::AsgTool.

Definition at line 50 of file TrackSystematicsMaker.cxx.

50  {
51  ATH_MSG_INFO(" top::TrackSystematicsMaker initialize");
52 
53  ATH_MSG_WARNING("Usage of tracks in AnalysisTop is experimental for now!\n");
54 
55  m_runPeriods = m_config->runPeriodsTrack();
56 
58 
59  // Retrieve the systematics tools. Each individual function will cause
60  // program abortion upon failure. This is intended as there's no
61  // meaningful method of recovery.
62  // These tools are setup and initialised in the TopCPTools package, and we just retrieve them here.
63  top::check(retrieveTrackCPTool(), "Failed to retrieve the track CP tools");
64 
65  // Setup the recommended systematics. This utilises the tools that were
66  // setup before.
67  const std:: string& syststr = m_config->systematics();
68  std::set<std::string> syst;
69 
70  if (m_config->isSystNominal(syststr)) {
71 
73 
74 
75  } else if (m_config->isSystAll(syststr)) {
76 
77  specifiedSystematics({"AllTracks"});
78 
79  } else {
80 
81  std::set<std::string> syst;
82  bool ok = m_config->getSystematicsList(syststr, syst);
83  if (!ok) {
84  ATH_MSG_ERROR(" top::TrackSystematicsMaker could not determine systematic list");
85  return StatusCode::FAILURE;
86  }
87 
88 
89  // No need to manually handle the AllTrack case in here.
91  }
92 
93 
94  // Pass the systematics list back to the top::TopConfig object.
95  m_config->systematicsTracks(specifiedSystematics());
96 
97  ATH_MSG_INFO(" top::TrackSystematicsMaker completed initialize");
98  return StatusCode::SUCCESS;
99  }

◆ 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.

◆ 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  }

◆ msg_level_name()

const std::string & asg::AsgTool::msg_level_name ( ) const
inherited

A deprecated function for getting the message level's name.

Instead of using this, weirdly named function, user code should get the string name of the current minimum message level (in case they really need it...), with:

MSG::name( msg().level() )

This function's name doesn't follow the ATLAS coding rules, and as such will be removed in the not too distant future.

Returns
The string name of the current minimum message level that's printed

Definition at line 101 of file AsgTool.cxx.

101  {
102 
103  return MSG::name( msg().level() );
104  }

◆ 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  }

◆ operator=()

TrackSystematicsMaker& top::TrackSystematicsMaker::operator= ( const TrackSystematicsMaker rhs)
delete

◆ 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.

◆ print()

void asg::AsgTool::print ( ) const
virtualinherited

◆ recommendedSystematics()

const std::list< CP::SystematicSet > & top::TrackSystematicsMaker::recommendedSystematics ( ) const
inline

Definition at line 483 of file TrackSystematicsMaker.cxx.

483  {
485  }

◆ 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  }

◆ retrieveTrackCPTool()

StatusCode top::TrackSystematicsMaker::retrieveTrackCPTool ( )
private

Definition at line 423 of file TrackSystematicsMaker.cxx.

423  {
424  ATH_MSG_INFO(" Retrieving track CPTools");
425 
426 
427  top::check(m_smearingTool.retrieve(), "Failed to retrieve track smearing tool");
428 
429  std::string biasToolPrefix {"top::TrackCPTools::InDetTrackBiasingTool"};
430  top::check(not m_runPeriods.empty(), "Assertion failed");
431  // Two cases are possible:
432  // - Either a single run number was specified to the runPeriods
433  // parameter in which case we'll use exactly that run number, or
434  // - at least two numbers have been specified, which then define
435  // (potentially multiple) run number ranges.
436  unsigned int end = 0;
437  if (m_runPeriods.size() == 1) {
438  end = 1;
439  m_biasTool.resize(1);
440  } else {
441  end = m_runPeriods.size() - 1;
442  m_biasTool.resize(m_runPeriods.size() - 1);
443  }
444 
445  for (unsigned int i = 0; i < end; i++) {
446 
447 
448  std::string biasToolName {
449  ""
450  };
451  if (m_runPeriods.size() == 1) {
452  biasToolName = biasToolPrefix + "_" + std::to_string(m_runPeriods[0]);
453  }
454  else {
455  biasToolName = biasToolPrefix + "_" + std::to_string(m_runPeriods[i]) + "_" +
457  }
458 
459 
460  if (asg::ToolStore::contains<InDet::InDetTrackBiasingTool>(biasToolName)) {
461  m_biasTool[i] = asg::ToolStore::get<InDet::InDetTrackBiasingTool>(biasToolName);
462  } else {
463  ATH_MSG_ERROR(" Impossible to retrieve " + biasToolName);
464  return StatusCode::FAILURE;
465  }
466 
467 
468 
469  }
470 
471  top::check(m_truthOriginTool.retrieve(), "Failed to retrieve track truth origin tool");
472  top::check(m_truthFilterTool.retrieve(), "Failed to retrieve track truth filter tool");
473 
474 
475  return StatusCode::SUCCESS;
476  }

◆ specifiedSystematics() [1/2]

const std::list< CP::SystematicSet > & top::TrackSystematicsMaker::specifiedSystematics ( ) const
inline

Definition at line 479 of file TrackSystematicsMaker.cxx.

479  {
480  return m_specifiedSystematics;
481  }

◆ specifiedSystematics() [2/2]

void top::TrackSystematicsMaker::specifiedSystematics ( const std::set< std::string > &  specifiedSystematics)
virtual

Specify the systematics to be used.

Parameters
specifiedSystematicsSet of systematics (by name) to be used; an empty set will result in no systematic variation.

MC only –///

– Are we only doing Nominal? Did the user specify specific systematics to use? –///

Definition at line 339 of file TrackSystematicsMaker.cxx.

339  {
340 
341  // NOTE: For this function -- unlike the "proper" ObjectCollectionMakers in AnalysisTop -- an empty
342  // specifiedSystematics input is considered to represent "No Systematics". All Track systematics can be
343  // requested with the string "AllTrack".
344  const bool allTrackSystematics = m_config->contains(specSys, "AllTracks");
345 
346  // Acquire the recommended systematics from the various tools and put
347  // into containers that store the per-tool systematics as well as a
348  // global container. At a later point we'll make the per-tool containers
349  // unique and check that the containers for various tools are
350  // orthogonal.
351  std::set<CP::SystematicSet> systs;
352 
353  // SMEARING
354  m_systs.smearing = CP::make_systematics_vector(m_smearingTool->recommendedSystematics());
355  systs.insert(m_systs.smearing.begin(), m_systs.smearing.end());
356 
357  // BIAS
358  for (const auto& tool : m_biasTool) {
359  m_systs.bias =
360  CP::make_systematics_vector(tool->recommendedSystematics());
361  systs.insert(m_systs.bias.begin(), m_systs.bias.end());
362  }
363 
364  // TRUTH FILTER
365  m_systs.truthFilter =
366  CP::make_systematics_vector(m_truthFilterTool->recommendedSystematics());
367  systs.insert(m_systs.truthFilter.begin(), m_systs.truthFilter.end());
368 
369  // PUT INTO RECOMMENDED AND SPECIFIED
370  for (const auto& s : systs) {
371 
372  // We don't want nominal.
373  if (s.name() == "") {
374  continue;
375  }
376 
377  m_recommendedSystematics.push_back(s);
378 
380  if (m_config->isMC()) {
382  if (!m_config->isSystNominal(m_config->systematics())) {
383  if (allTrackSystematics) {
384 
385  m_specifiedSystematics.push_back(s);
386  continue;
387  }
388 
389  for (const auto& i : specSys) {
390  TreeFilter filter(i);
391  if (!filter.filterTree(s.name())) {
392  m_specifiedSystematics.push_back(s);
393  }
394  }
395  }
396  }
397  }
398 
400  m_recommendedSystematics.unique();
401 
402  m_specifiedSystematics.sort();
403  m_specifiedSystematics.unique();
404 
405  // Make the sublists unique and remove any elements that have not "been specified".
406  m_systs.makeUnique();
407  m_systs.removeNonSpecified(m_specifiedSystematics);
408 
409  // Lastly, let use introduce a safeguard which ensures that the
410  // systematics selected for the various tools are orthogonal. This is
411  // done by asserting that the sum of the sizes of the individual
412  // systematics lists equals the size of the list of specified
413  // systematics. We can do this because we've made the individual
414  // per-tool containers unique (in makeUnique).
415  if(m_specifiedSystematics.size() > 1)
416  top::check(systs.size() == m_specifiedSystematics.size(), "Sanity check failed");
417  else
418  top::check(m_specifiedSystematics.size() == 1, "Sanity check failed");
419 
420 
421  }

◆ 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

◆ bias

std::vector<CP::SystematicSet> top::TrackSystematicsMaker::bias

Definition at line 141 of file TrackSystematicsMaker.h.

◆ m_biasTool

std::vector<ToolHandle<InDet::InDetTrackBiasingTool> > top::TrackSystematicsMaker::m_biasTool
private

Definition at line 145 of file TrackSystematicsMaker.h.

◆ m_config

std::shared_ptr<top::TopConfig> top::TrackSystematicsMaker::m_config
private

Definition at line 96 of file TrackSystematicsMaker.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_nominalSystematicSet

CP::SystematicSet top::TrackSystematicsMaker::m_nominalSystematicSet
private

Definition at line 102 of file TrackSystematicsMaker.h.

◆ m_recommendedSystematics

std::list<CP::SystematicSet> top::TrackSystematicsMaker::m_recommendedSystematics
private

Definition at line 100 of file TrackSystematicsMaker.h.

◆ m_runPeriods

std::vector<std::uint32_t> top::TrackSystematicsMaker::m_runPeriods
private

Definition at line 97 of file TrackSystematicsMaker.h.

◆ m_smearingTool

ToolHandle<InDet::InDetTrackSmearingTool> top::TrackSystematicsMaker::m_smearingTool
private

Definition at line 144 of file TrackSystematicsMaker.h.

◆ m_specifiedSystematics

std::list<CP::SystematicSet> top::TrackSystematicsMaker::m_specifiedSystematics
private

Definition at line 99 of file TrackSystematicsMaker.h.

◆ m_systs

struct { ... } top::TrackSystematicsMaker::m_systs

◆ m_truthFilterTool

ToolHandle<InDet::InDetTrackTruthFilterTool> top::TrackSystematicsMaker::m_truthFilterTool
private

Definition at line 147 of file TrackSystematicsMaker.h.

◆ m_truthOriginTool

ToolHandle<InDet::InDetTrackTruthOriginTool> top::TrackSystematicsMaker::m_truthOriginTool
private

Definition at line 146 of file TrackSystematicsMaker.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.

◆ smearing

std::vector<CP::SystematicSet> top::TrackSystematicsMaker::smearing

Definition at line 141 of file TrackSystematicsMaker.h.

◆ truthFilter

std::vector<CP::SystematicSet> top::TrackSystematicsMaker::truthFilter

Definition at line 141 of file TrackSystematicsMaker.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
top::TrackSystematicsMaker::m_recommendedSystematics
std::list< CP::SystematicSet > m_recommendedSystematics
Definition: TrackSystematicsMaker.h:100
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
top::TrackSystematicsMaker::m_systs
struct top::TrackSystematicsMaker::@221 m_systs
CP::make_systematics_vector
std::vector< CP::SystematicSet > make_systematics_vector(const SystematicSet &systematics)
utility functions for working with systematics
Definition: SystematicsUtil.cxx:25
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CP::SystematicSet
Class to wrap a set of SystematicVariations.
Definition: SystematicSet.h:31
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
ParticleTest.tp
tp
Definition: ParticleTest.py:25
top::TrackSystematicsMaker::m_specifiedSystematics
std::list< CP::SystematicSet > m_specifiedSystematics
Definition: TrackSystematicsMaker.h:99
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
top::TrackSystematicsMaker::applySmearingSystematic
StatusCode applySmearingSystematic(InDet::InDetTrackSmearingTool *tool, const CP::SystematicSet &syst) const
Definition: TrackSystematicsMaker.cxx:146
top::TrackSystematicsMaker::m_biasTool
std::vector< ToolHandle< InDet::InDetTrackBiasingTool > > m_biasTool
Definition: TrackSystematicsMaker.h:145
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
covarianceTool.filter
filter
Definition: covarianceTool.py:514
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
CP::SystematicSet::hash
std::size_t hash() const
returns: hash value for the joined string.
Definition: SystematicSet.cxx:289
top::TrackSystematicsMaker::m_nominalSystematicSet
CP::SystematicSet m_nominalSystematicSet
Definition: TrackSystematicsMaker.h:102
checkTP.save
def save(self, fileName="./columbo.out")
Definition: checkTP.py:178
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
top::TrackSystematicsMaker::m_truthOriginTool
ToolHandle< InDet::InDetTrackTruthOriginTool > m_truthOriginTool
Definition: TrackSystematicsMaker.h:146
lumiFormat.i
int i
Definition: lumiFormat.py:92
top::TrackSystematicsMaker::applyTruthFilterSystematic
StatusCode applyTruthFilterSystematic(InDet::InDetTrackTruthFilterTool *tool, const CP::SystematicSet &syst) const
Definition: TrackSystematicsMaker.cxx:103
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
top::TrackSystematicsMaker::m_smearingTool
ToolHandle< InDet::InDetTrackSmearingTool > m_smearingTool
Definition: TrackSystematicsMaker.h:144
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
top::TrackSystematicsMaker::retrieveTrackCPTool
StatusCode retrieveTrackCPTool()
Definition: TrackSystematicsMaker.cxx:423
InDet::InDetTrackBiasingTool
Definition: InDetTrackBiasingTool.h:36
top::check
void check(bool thingToCheck, const std::string &usefulFailureMessage)
Print an error message and terminate if thingToCheck is false.
Definition: EventTools.cxx:15
python.xAODType.dummy
dummy
Definition: xAODType.py:4
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
DataVector< xAOD::TrackParticle_v1 >
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:192
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
top::TrackSystematicsMaker::applyBiasingSystematic
StatusCode applyBiasingSystematic(InDet::InDetTrackBiasingTool *tool, const CP::SystematicSet &syst) const
Definition: TrackSystematicsMaker.cxx:184
xAOD::shallowCopyContainer
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
Definition: ShallowCopy.h:110
xAOD::EventInfo_v1
Class describing the basic event information.
Definition: EventInfo_v1.h:43
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
top::TrackSystematicsMaker::m_truthFilterTool
ToolHandle< InDet::InDetTrackTruthFilterTool > m_truthFilterTool
Definition: TrackSystematicsMaker.h:147
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
top::TrackSystematicsMaker::specifiedSystematics
const std::list< CP::SystematicSet > & specifiedSystematics() const
Definition: TrackSystematicsMaker.cxx:479
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
SG::DataProxy
Definition: DataProxy.h:44
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
top::TrackSystematicsMaker::m_config
std::shared_ptr< top::TopConfig > m_config
Definition: TrackSystematicsMaker.h:96
top::TrackSystematicsMaker::m_runPeriods
std::vector< std::uint32_t > m_runPeriods
Definition: TrackSystematicsMaker.h:97