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

#include <JetConstituentModSequence.h>

Inheritance diagram for JetConstituentModSequence:
Collaboration diagram for JetConstituentModSequence:

Public Member Functions

 JetConstituentModSequence (const std::string &name)
 
StatusCode initialize ()
 Dummy implementation of the initialisation function. More...
 
int execute () const
 Method to be called for each event. 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
 
virtual int inputContainerNames (std::vector< std::string > &connames)
 Method to return the list of input containers. More...
 
virtual int outputContainerNames (std::vector< std::string > &connames)
 Method to return the list of output containers. More...
 

Protected Member Functions

template<class T >
StatusCode copyModRecord (const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &) const
 helper function to cast, shallow copy and record a container. More...
 
template<class T , class U >
StatusCode copyModRecordFlowLike (const SG::ReadHandleKey< T > &, const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &, const SG::WriteHandleKey< T > &, const SG::WriteHandleKey< T > &) 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...
 

Protected Attributes

Gaudi::Property< std::string > m_inputContainer {this, "InputContainer", "", "The input container for the sequence"}
 
Gaudi::Property< std::string > m_outputContainer = {this, "OutputContainer", "", "The output container for the sequence"}
 
Gaudi::Property< bool > m_byVertex = {this, "DoByVertex", false, "True if we should match to each primary vertex, not just PV0"}
 
SG::ReadHandleKey< xAOD::VertexContainerm_vertexContainerKey {this, "VertexContainerKey", "PrimaryVertices", "Reconstructed primary vertex container name"}
 
unsigned short m_inputType
 
ToolHandleArray< IJetConstituentModifierm_modifiers {this , "Modifiers" , {} , "List of constit modifier tools."}
 
ToolHandle< GenericMonitoringToolm_monTool {this,"MonTool","","Monitoring tool"}
 
bool m_saveAsShallow = true
 
SG::ReadHandleKey< xAOD::CaloClusterContainerm_inClusterKey {this, "InClusterKey", "", "ReadHandleKey for unmodified CaloClusters"}
 
SG::WriteHandleKey< xAOD::CaloClusterContainerm_outClusterKey {this, "OutClusterKey", "", "WriteHandleKey for modified CaloClusters"}
 
SG::ReadHandleKey< xAOD::TrackCaloClusterContainerm_inTCCKey {this, "InTCCKey", "", "ReadHandleKey for unmodified TrackCaloClusters"}
 
SG::WriteHandleKey< xAOD::TrackCaloClusterContainerm_outTCCKey {this, "OutTCCKey", "", "WriteHandleKey for modified TrackCaloClusters"}
 
SG::ReadHandleKey< xAOD::PFOContainerm_inChargedPFOKey {this, "InChargedPFOKey", "", "ReadHandleKey for modified Charged PFlow Objects"}
 
SG::WriteHandleKey< xAOD::PFOContainerm_outChargedPFOKey {this, "OutChargedPFOKey", "", "WriteHandleKey for modified Charged PFlow Objects"}
 
SG::ReadHandleKey< xAOD::PFOContainerm_inNeutralPFOKey {this, "InNeutralPFOKey", "", "ReadHandleKey for modified Neutral PFlow Objects"}
 
SG::WriteHandleKey< xAOD::PFOContainerm_outNeutralPFOKey {this, "OutNeutralPFOKey", "", "WriteHandleKey for modified Neutral PFlow Objects"}
 
SG::WriteHandleKey< xAOD::PFOContainerm_outAllPFOKey {this, "OutAllPFOKey", "", "WriteHandleKey for all modified PFlow Objects"}
 
SG::ReadHandleKey< xAOD::FlowElementContainerm_inChargedFEKey {this, "InChargedFEKey", "", "ReadHandleKey for modified Charged FlowElements"}
 
SG::WriteHandleKey< xAOD::FlowElementContainerm_outChargedFEKey {this, "OutChargedFEKey", "", "WriteHandleKey for modified Charged FlowElements"}
 
SG::ReadHandleKey< xAOD::FlowElementContainerm_inNeutralFEKey {this, "InNeutralFEKey", "", "ReadHandleKey for modified Neutral FlowElements"}
 
SG::WriteHandleKey< xAOD::FlowElementContainerm_outNeutralFEKey {this, "OutNeutralFEKey", "", "WriteHandleKey for modified Neutral FlowElements"}
 
SG::WriteHandleKey< xAOD::FlowElementContainerm_outAllFEKey {this, "OutAllFEKey", "", "WriteHandleKey for all modified FlowElements"}
 
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainerm_inChargedFEDecorKeys {this, "InChargedFEDecorKeys", {}, "Dummy keys that force all neccessary charged FlowElement decorations to be applied before running this algorithm"}
 
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainerm_inNeutralFEDecorKeys {this, "InNeutralFEDecorKeys", {}, "Dummy keys that force all neccessary neutral FlowElement decorations to be applied before running this algorithm"}
 

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

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 51 of file JetConstituentModSequence.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

◆ JetConstituentModSequence()

JetConstituentModSequence::JetConstituentModSequence ( const std::string &  name)

Definition at line 26 of file JetConstituentModSequence.cxx.

26  :
28 
29 #ifdef ASG_TOOL_ATHENA
30  declareInterface<IJetConstituentModifier>(this);
31 #endif
32  declareProperty("InputType", m_inputType, "The xAOD type name for the input container.");
33  declareProperty("SaveAsShallow", m_saveAsShallow=true, "Save as shallow copy");
34 
35 }

Member Function Documentation

◆ copyModRecord()

template<class T >
StatusCode JetConstituentModSequence::copyModRecord ( const SG::ReadHandleKey< T > &  inKey,
const SG::WriteHandleKey< T > &  outKey 
) const
protected

helper function to cast, shallow copy and record a container.

Definition at line 121 of file JetConstituentModSequence.h.

122  {
123 
124  /* Read in a container of (type is template parameter),
125  optionally modify the elements of this container, and store.
126  This puts a (modified) copy of the container into storegate.
127  */
128 
129  auto inHandle = makeHandle(inKey);
130  if(!inHandle.isValid()){
131  ATH_MSG_WARNING("Unable to retrieve input container from " << inKey.key());
132  return StatusCode::FAILURE;
133  }
134 
135  std::pair< T*, xAOD::ShallowAuxContainer* > newconstit =
136  xAOD::shallowCopyContainer(*inHandle);
137  newconstit.second->setShallowIO(m_saveAsShallow);
138 
139  for (auto t : m_modifiers) {ATH_CHECK(t->process(newconstit.first));}
140 
141  auto handle = makeHandle(outKey);
142  ATH_CHECK(handle.record(std::unique_ptr<T>(newconstit.first),
143  std::unique_ptr<xAOD::ShallowAuxContainer>(newconstit.second)));
144 
145  xAOD::setOriginalObjectLink(*inHandle, *handle);
146 
147  return StatusCode::SUCCESS;
148 }

◆ copyModRecordFlowLike()

template<class T , class U >
StatusCode JetConstituentModSequence::copyModRecordFlowLike ( const SG::ReadHandleKey< T > &  inNeutralKey,
const SG::ReadHandleKey< T > &  inChargedKey,
const SG::WriteHandleKey< T > &  outNeutralKey,
const SG::WriteHandleKey< T > &  outChargedKey,
const SG::WriteHandleKey< T > &  outAllKey 
) const
protected

Definition at line 150 of file JetConstituentModSequence.h.

150  {
151 
152  // Cannot be handled the same way as other objects (e.g. clusters),
153  // because the data is split between two containers, but we need
154  // information from both to do the modifications.
155  //
156  // The logic is:
157  // 1. Copy the charged container via a shallow copy
158  // 2. Create N copies of neutral container for by-vertex reconstruction OR
159  // Create a single copy of neutral container for regular jet reconstruction
160  // 3. Merge into a combined view container
161  // 4. Modify the combined container
162 
163  // 1. Retrieve the input containers
164  SG::ReadHandle<T> inNeutralHandle = makeHandle(inNeutralKey);
165  SG::ReadHandle<T> inChargedHandle = makeHandle(inChargedKey);
166  if(!inNeutralHandle.isValid()){
167  ATH_MSG_WARNING("Unable to retrieve input containers \""
168  << inNeutralKey.key() << "\" and \""
169  << inChargedKey.key() << "\"");
170  return StatusCode::FAILURE;
171  }
172 
173  unsigned numNeutralCopies = 1;
174  if (m_byVertex){
175  // Retrieve Primary Vertices
176  auto handle = SG::makeHandle(m_vertexContainerKey);
177  if (!handle.isValid()){
178  ATH_MSG_WARNING(" This event has no primary vertex container" );
179  return StatusCode::FAILURE;
180  }
181 
182  const xAOD::VertexContainer* vertices = handle.cptr();
183  if(vertices->empty()){
184  ATH_MSG_WARNING(" Failed to retrieve valid primary vertex container" );
185  return StatusCode::FAILURE;
186  }
187  numNeutralCopies = static_cast<unsigned>(vertices->size());
188  }
189 
190  // Copy the input containers individually, set I/O option and record
191  // Charged elements
192  SG::WriteHandle<T> outChargedHandle = makeHandle(outChargedKey);
193 
194  std::pair<T*, xAOD::ShallowAuxContainer* > chargedCopy = xAOD::shallowCopyContainer(*inChargedHandle);
195  chargedCopy.second->setShallowIO(m_saveAsShallow);
196  xAOD::setOriginalObjectLink(*inChargedHandle, *chargedCopy.first);
197 
198  ATH_CHECK(outChargedHandle.record(std::unique_ptr<T>(chargedCopy.first),
199  std::unique_ptr<xAOD::ShallowAuxContainer>(chargedCopy.second)));
200 
201  // Neutral elements
202  SG::WriteHandle<T> outNeutralHandle = makeHandle(outNeutralKey);
203 
204  // Shallow copy
205  if (m_saveAsShallow){
206 
207  std::pair<T*, xAOD::ShallowAuxContainer* > neutralCopy = xAOD::shallowCopyContainer(*inNeutralHandle);
208  chargedCopy.second->setShallowIO(true);
209  xAOD::setOriginalObjectLink(*inNeutralHandle, *neutralCopy.first);
210 
211  ATH_CHECK(outNeutralHandle.record(std::unique_ptr<T>(neutralCopy.first),
212  std::unique_ptr<xAOD::ShallowAuxContainer>(neutralCopy.second)));
213 
214  }
215  // Deep copy
216  else{
217  // Define the accessor which will add the index
218  const SG::AuxElement::Accessor<unsigned> copyIndex("ConstituentCopyIndex");
219 
220  // Create the new container and its auxiliary store.
221  auto neutralCopies = std::make_unique<T>();
222  auto neutralCopiesAux = std::make_unique<xAOD::AuxContainerBase>();
223  neutralCopies->setStore(neutralCopiesAux.get()); //< Connect the two
224 
225  // Create N copies and set copy index
226  // Necessary for by-vertex jet reconstruction
227  for (unsigned i = 0; i < numNeutralCopies; i++){
228  for (const U* fe : *inNeutralHandle) {
229  U* copy = new U();
230  neutralCopies->push_back(copy);
231  *copy = *fe;
232  copyIndex(*copy) = i;
234  }
235  }
236 
237  ATH_CHECK(outNeutralHandle.record(std::move(neutralCopies),
238  std::move(neutralCopiesAux))
239  );
240  }
241 
242 
243  // 2. Set up output handle for merged (view) container and record
244  SG::WriteHandle<T> outAllHandle = makeHandle(outAllKey);
245  ATH_CHECK(outAllHandle.record(std::make_unique<T>(SG::VIEW_ELEMENTS)));
246  (*outAllHandle).assign((*outNeutralHandle).begin(), (*outNeutralHandle).end());
247  (*outAllHandle).insert((*outAllHandle).end(),
248  (*outChargedHandle).begin(),
249  (*outChargedHandle).end());
250 
251  // 3. Now process modifications on all elements
252  for (auto t : m_modifiers) {ATH_CHECK(t->process(&*outAllHandle));}
253  return StatusCode::SUCCESS;
254 }

◆ 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()

int JetConstituentModSequence::execute ( ) const
virtual

Method to be called for each event.

Returns 0 for success.

Implements IJetExecuteTool.

Definition at line 189 of file JetConstituentModSequence.cxx.

189  {
190 
191 #ifndef XAOD_ANALYSIS
192  // Define monitored quantities
193  auto t_exec = Monitored::Timer<std::chrono::milliseconds>( "TIME_constitmod" );
194 #endif
195 
196  // Create the shallow copy according to the input type
197  switch(m_inputType){
198 
202  if(!sc.isSuccess()) return 1;
203  break;
204  }
205 
207  auto sc = copyModRecordFlowLike<xAOD::PFOContainer, xAOD::PFO>(m_inNeutralPFOKey, m_inChargedPFOKey, m_outNeutralPFOKey, m_outChargedPFOKey, m_outAllPFOKey);
208  if(!sc.isSuccess()) return 1;
209  break;
210  }
212  auto sc = copyModRecordFlowLike<xAOD::FlowElementContainer, xAOD::FlowElement>(m_inNeutralFEKey, m_inChargedFEKey, m_outNeutralFEKey, m_outChargedFEKey, m_outAllFEKey);
213  if(!sc.isSuccess()) return 1;
214  break;
215  }
216 
218  auto sc = copyModRecord(m_inTCCKey,
219  m_outTCCKey);
220  if(!sc.isSuccess()){return 1;}
221  break;
222  }
223 
224  default: {
225  ATH_MSG_WARNING( "Unsupported input type " << m_inputType );
226  }
227 
228  }
229 
230  #ifndef XAOD_ANALYSIS
231  auto mon = Monitored::Group(m_monTool, t_exec);
232  #endif
233  return 0;
234 }

◆ 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 JetConstituentModSequence::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 37 of file JetConstituentModSequence.cxx.

37  {
38  ATH_MSG_INFO("Initializing tool " << name() << "...");
39  ATH_MSG_DEBUG("initializing version with data handles");
40 
41 
42  ATH_CHECK( m_modifiers.retrieve() );
44 
45  // Shallow copies are not supported for by-vertex jet reconstruction
46  if (m_byVertex){
47  m_saveAsShallow = false;
48  }
49 
50 #ifndef XAOD_ANALYSIS
51  ATH_CHECK( m_monTool.retrieve( DisableTool{m_monTool.empty()} ) );
52 #endif
53 
54  // Set and initialise DataHandleKeys only for the correct input type
55  // Die if the input type is unsupported
56  switch(m_inputType) {
58  {
61 
64  break;
65  }
67  {
68  std::string inputContainerBase = m_inputContainer;
69  std::string outputContainerBase = m_outputContainer;
70 
71  // Know what the user means if they give the full input/output container name in this format
72  size_t pos = inputContainerBase.find("ParticleFlowObjects");
73  if(pos != std::string::npos) inputContainerBase.erase(pos);
74 
75  pos = outputContainerBase.find("ParticleFlowObjects");
76  if(pos != std::string::npos) outputContainerBase.erase(pos);
77 
78  m_inChargedPFOKey = inputContainerBase + "ChargedParticleFlowObjects";
79  m_inNeutralPFOKey = inputContainerBase + "NeutralParticleFlowObjects";
80 
81  m_outChargedPFOKey = outputContainerBase + "ChargedParticleFlowObjects";
82  m_outNeutralPFOKey = outputContainerBase + "NeutralParticleFlowObjects";
83  m_outAllPFOKey = outputContainerBase + "ParticleFlowObjects";
84 
85  ATH_CHECK(m_inChargedPFOKey.initialize());
86  ATH_CHECK(m_inNeutralPFOKey.initialize());
87  ATH_CHECK(m_outChargedPFOKey.initialize());
88  ATH_CHECK(m_outNeutralPFOKey.initialize());
89  ATH_CHECK(m_outAllPFOKey.initialize());
90  break;
91  }
92  break;
96 
97  ATH_CHECK(m_inTCCKey.initialize());
98  ATH_CHECK(m_outTCCKey.initialize());
99  break;
101  {
102  // TODO: This assumes a PFlow-style neutral and charged collection.
103  // More general FlowElements (e.g. CaloClusters) may necessitate a rework here later.
104 
105  const std::string subString = "ParticleFlowObjects";
106  const std::string subStringCharged = "ChargedParticleFlowObjects";
107  const std::string subStringNeutral = "NeutralParticleFlowObjects";
108 
109  std::string inputContainerBase = m_inputContainer;
110  std::string outputContainerBase = m_outputContainer;
111 
112  m_inChargedFEKey = inputContainerBase;
113  m_inNeutralFEKey = inputContainerBase;
114 
115  m_outChargedFEKey = outputContainerBase;
116  m_outNeutralFEKey = outputContainerBase;
117 
118  //For both the input and output container basenames we first check if the string
119  //contains "ParticleFlowObjects". If it does we swap this for "ChargedParticleFlowObjects"
120  //and "NeutralParticleFlowObjects" respectively. If it doesn't we just append these two
121  //substrings to the end of the strings.
122 
123  size_t pos = inputContainerBase.find(subString);
124  if(pos != std::string::npos) {
125  std::string inChargedString = m_inChargedFEKey.key();
126  m_inChargedFEKey = inChargedString.replace(pos,subString.size(),subStringCharged);
127  std::string inNeutralString = m_inNeutralFEKey.key();
128  m_inNeutralFEKey = inNeutralString.replace(pos,subString.size(),subStringNeutral);
129  }
130  else {
131  m_inChargedFEKey = inputContainerBase + subStringCharged;
132  m_inNeutralFEKey = inputContainerBase + subStringNeutral;
133  }
134 
135  pos = outputContainerBase.find(subString);
136  if(pos != std::string::npos) {
137  std::string outChargedString = m_outChargedFEKey.key();
138  m_outChargedFEKey = outChargedString.replace(pos,subString.size(),subStringCharged);
139  std::string outNeutralString = m_outNeutralFEKey.key();
140  m_outNeutralFEKey = outNeutralString.replace(pos,subString.size(),subStringNeutral);
141  }
142  else{
143  m_outChargedFEKey = outputContainerBase + subStringCharged;
144  m_outNeutralFEKey = outputContainerBase + subStringNeutral;
145  }
146 
147  //The all FE container is a bit different. If the input container base contains
148  //"ParticleFlowObjects" we do nothing, otherwise we add this string onto the end.
149  pos = outputContainerBase.find(subString);
150  if(pos == std::string::npos) m_outAllFEKey = outputContainerBase + subString;
151  else m_outAllFEKey = outputContainerBase;
152 
153  ATH_CHECK(m_inChargedFEKey.initialize());
154  ATH_CHECK(m_inNeutralFEKey.initialize());
155 
156  ATH_CHECK(m_outChargedFEKey.initialize());
157  ATH_CHECK(m_outNeutralFEKey.initialize());
158  ATH_CHECK(m_outAllFEKey.initialize());
159 
160  // It is enough to initialise the ReadDecorHandleKeys for thread-safety
161  // We are not actually accessing the decorations, only ensuring they are present at runtime
162  // Hence, ReadDecorHandles are not explicitly required to be created
163 
164  // Prepend the FE input container name to the decorations
165  for (auto& key : m_inChargedFEDecorKeys) {
166  const std::string keyString = m_inChargedFEKey.key() + "." + key.key();
167  ATH_CHECK(key.assign(keyString));
168 
169  }
170 
171  for (auto& key : m_inNeutralFEDecorKeys) {
172  const std::string keyString = m_inNeutralFEKey.key() + "." + key.key();
173  ATH_CHECK(key.assign(keyString));
174  }
175 
176  ATH_CHECK(m_inChargedFEDecorKeys.initialize());
177  ATH_CHECK(m_inNeutralFEDecorKeys.initialize());
178 
179  break;
180  }
181  default:
182  ATH_MSG_ERROR(" Unsupported input type "<< m_inputType );
183  return StatusCode::FAILURE;
184  }
185 
186  return StatusCode::SUCCESS;
187 }

◆ inputContainerNames()

int IJetExecuteTool::inputContainerNames ( std::vector< std::string > &  connames)
virtualinherited

Method to return the list of input containers.

The names of required input containers are appended to connames. Returns nonzero for error. Default returns 0 and adds no names.

Reimplemented in JetRecTool.

Definition at line 11 of file IJetExecuteTool.cxx.

11  {
12  return 0;
13 }

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

◆ outputContainerNames()

int IJetExecuteTool::outputContainerNames ( std::vector< std::string > &  connames)
virtualinherited

Method to return the list of output containers.

The names of produced output containers are appended to connames. Returns nonzero for error. Default returns 0 and adds no names.

Reimplemented in JetRecTool.

Definition at line 17 of file IJetExecuteTool.cxx.

17  {
18  return 0;
19 }

◆ 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

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

Gaudi::Property<bool> JetConstituentModSequence::m_byVertex = {this, "DoByVertex", false, "True if we should match to each primary vertex, not just PV0"}
protected

Definition at line 62 of file JetConstituentModSequence.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_inChargedFEDecorKeys

SG::ReadDecorHandleKeyArray<xAOD::FlowElementContainer> JetConstituentModSequence::m_inChargedFEDecorKeys {this, "InChargedFEDecorKeys", {}, "Dummy keys that force all neccessary charged FlowElement decorations to be applied before running this algorithm"}
protected

Definition at line 104 of file JetConstituentModSequence.h.

◆ m_inChargedFEKey

SG::ReadHandleKey<xAOD::FlowElementContainer> JetConstituentModSequence::m_inChargedFEKey {this, "InChargedFEKey", "", "ReadHandleKey for modified Charged FlowElements"}
protected

Definition at line 94 of file JetConstituentModSequence.h.

◆ m_inChargedPFOKey

SG::ReadHandleKey<xAOD::PFOContainer> JetConstituentModSequence::m_inChargedPFOKey {this, "InChargedPFOKey", "", "ReadHandleKey for modified Charged PFlow Objects"}
protected

Definition at line 86 of file JetConstituentModSequence.h.

◆ m_inClusterKey

SG::ReadHandleKey<xAOD::CaloClusterContainer> JetConstituentModSequence::m_inClusterKey {this, "InClusterKey", "", "ReadHandleKey for unmodified CaloClusters"}
protected

Definition at line 80 of file JetConstituentModSequence.h.

◆ m_inNeutralFEDecorKeys

SG::ReadDecorHandleKeyArray<xAOD::FlowElementContainer> JetConstituentModSequence::m_inNeutralFEDecorKeys {this, "InNeutralFEDecorKeys", {}, "Dummy keys that force all neccessary neutral FlowElement decorations to be applied before running this algorithm"}
protected

Definition at line 105 of file JetConstituentModSequence.h.

◆ m_inNeutralFEKey

SG::ReadHandleKey<xAOD::FlowElementContainer> JetConstituentModSequence::m_inNeutralFEKey {this, "InNeutralFEKey", "", "ReadHandleKey for modified Neutral FlowElements"}
protected

Definition at line 97 of file JetConstituentModSequence.h.

◆ m_inNeutralPFOKey

SG::ReadHandleKey<xAOD::PFOContainer> JetConstituentModSequence::m_inNeutralPFOKey {this, "InNeutralPFOKey", "", "ReadHandleKey for modified Neutral PFlow Objects"}
protected

Definition at line 89 of file JetConstituentModSequence.h.

◆ m_inputContainer

Gaudi::Property<std::string> JetConstituentModSequence::m_inputContainer {this, "InputContainer", "", "The input container for the sequence"}
protected

Definition at line 60 of file JetConstituentModSequence.h.

◆ m_inputType

unsigned short JetConstituentModSequence::m_inputType
protected

Definition at line 68 of file JetConstituentModSequence.h.

◆ m_inTCCKey

SG::ReadHandleKey<xAOD::TrackCaloClusterContainer> JetConstituentModSequence::m_inTCCKey {this, "InTCCKey", "", "ReadHandleKey for unmodified TrackCaloClusters"}
protected

Definition at line 83 of file JetConstituentModSequence.h.

◆ m_modifiers

ToolHandleArray<IJetConstituentModifier> JetConstituentModSequence::m_modifiers {this , "Modifiers" , {} , "List of constit modifier tools."}
protected

Definition at line 71 of file JetConstituentModSequence.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool> JetConstituentModSequence::m_monTool {this,"MonTool","","Monitoring tool"}
protected

Definition at line 74 of file JetConstituentModSequence.h.

◆ m_outAllFEKey

SG::WriteHandleKey<xAOD::FlowElementContainer> JetConstituentModSequence::m_outAllFEKey {this, "OutAllFEKey", "", "WriteHandleKey for all modified FlowElements"}
protected

Definition at line 100 of file JetConstituentModSequence.h.

◆ m_outAllPFOKey

SG::WriteHandleKey<xAOD::PFOContainer> JetConstituentModSequence::m_outAllPFOKey {this, "OutAllPFOKey", "", "WriteHandleKey for all modified PFlow Objects"}
protected

Definition at line 92 of file JetConstituentModSequence.h.

◆ m_outChargedFEKey

SG::WriteHandleKey<xAOD::FlowElementContainer> JetConstituentModSequence::m_outChargedFEKey {this, "OutChargedFEKey", "", "WriteHandleKey for modified Charged FlowElements"}
protected

Definition at line 95 of file JetConstituentModSequence.h.

◆ m_outChargedPFOKey

SG::WriteHandleKey<xAOD::PFOContainer> JetConstituentModSequence::m_outChargedPFOKey {this, "OutChargedPFOKey", "", "WriteHandleKey for modified Charged PFlow Objects"}
protected

Definition at line 87 of file JetConstituentModSequence.h.

◆ m_outClusterKey

SG::WriteHandleKey<xAOD::CaloClusterContainer> JetConstituentModSequence::m_outClusterKey {this, "OutClusterKey", "", "WriteHandleKey for modified CaloClusters"}
protected

Definition at line 81 of file JetConstituentModSequence.h.

◆ m_outNeutralFEKey

SG::WriteHandleKey<xAOD::FlowElementContainer> JetConstituentModSequence::m_outNeutralFEKey {this, "OutNeutralFEKey", "", "WriteHandleKey for modified Neutral FlowElements"}
protected

Definition at line 98 of file JetConstituentModSequence.h.

◆ m_outNeutralPFOKey

SG::WriteHandleKey<xAOD::PFOContainer> JetConstituentModSequence::m_outNeutralPFOKey {this, "OutNeutralPFOKey", "", "WriteHandleKey for modified Neutral PFlow Objects"}
protected

Definition at line 90 of file JetConstituentModSequence.h.

◆ m_outputContainer

Gaudi::Property<std::string> JetConstituentModSequence::m_outputContainer = {this, "OutputContainer", "", "The output container for the sequence"}
protected

Definition at line 61 of file JetConstituentModSequence.h.

◆ m_outTCCKey

SG::WriteHandleKey<xAOD::TrackCaloClusterContainer> JetConstituentModSequence::m_outTCCKey {this, "OutTCCKey", "", "WriteHandleKey for modified TrackCaloClusters"}
protected

Definition at line 84 of file JetConstituentModSequence.h.

◆ m_saveAsShallow

bool JetConstituentModSequence::m_saveAsShallow = true
protected

Definition at line 77 of file JetConstituentModSequence.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexContainerKey

SG::ReadHandleKey<xAOD::VertexContainer> JetConstituentModSequence::m_vertexContainerKey {this, "VertexContainerKey", "PrimaryVertices", "Reconstructed primary vertex container name"}
protected

Definition at line 63 of file JetConstituentModSequence.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
JetConstituentModSequence::m_inTCCKey
SG::ReadHandleKey< xAOD::TrackCaloClusterContainer > m_inTCCKey
Definition: JetConstituentModSequence.h:83
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
TrigDefs::Group
Group
Properties of a chain group.
Definition: GroupProperties.h:13
StateLessPT_NewConfig.proxy
proxy
Definition: StateLessPT_NewConfig.py:392
JetConstituentModSequence::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: JetConstituentModSequence.h:74
JetConstituentModSequence::m_modifiers
ToolHandleArray< IJetConstituentModifier > m_modifiers
Definition: JetConstituentModSequence.h:71
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
JetConstituentModSequence::m_byVertex
Gaudi::Property< bool > m_byVertex
Definition: JetConstituentModSequence.h:62
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:68
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
ViewHelper::makeHandle
SG::ReadHandle< T > makeHandle(const SG::View *view, const SG::ReadHandleKey< T > &rhKey, const EventContext &context)
navigate from the TrigComposite to nearest view and fetch object from it
Definition: ViewHelper.h:259
JetConstituentModSequence::m_outputContainer
Gaudi::Property< std::string > m_outputContainer
Definition: JetConstituentModSequence.h:61
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
JetConstituentModSequence::m_outChargedFEKey
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outChargedFEKey
Definition: JetConstituentModSequence.h:95
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
JetConstituentModSequence::m_inClusterKey
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_inClusterKey
Definition: JetConstituentModSequence.h:80
JetConstituentModSequence::m_inNeutralFEKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inNeutralFEKey
Definition: JetConstituentModSequence.h:97
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
dbg::ptr
void * ptr(T *p)
Definition: SGImplSvc.cxx:74
JetConstituentModSequence::m_vertexContainerKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainerKey
Definition: JetConstituentModSequence.h:63
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
xAOD::TrackCaloCluster
TrackCaloCluster_v1 TrackCaloCluster
Reference the current persistent version:
Definition: TrackCaloCluster.h:12
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
JetConstituentModSequence::m_outClusterKey
SG::WriteHandleKey< xAOD::CaloClusterContainer > m_outClusterKey
Definition: JetConstituentModSequence.h:81
AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:85
JetConstituentModSequence::m_outChargedPFOKey
SG::WriteHandleKey< xAOD::PFOContainer > m_outChargedPFOKey
Definition: JetConstituentModSequence.h:87
JetConstituentModSequence::m_inputType
unsigned short m_inputType
Definition: JetConstituentModSequence.h:68
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
lumiFormat.i
int i
Definition: lumiFormat.py:85
JetConstituentModSequence::m_outAllPFOKey
SG::WriteHandleKey< xAOD::PFOContainer > m_outAllPFOKey
Definition: JetConstituentModSequence.h:92
JetConstituentModSequence::m_outNeutralPFOKey
SG::WriteHandleKey< xAOD::PFOContainer > m_outNeutralPFOKey
Definition: JetConstituentModSequence.h:90
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::FlowElement
FlowElement_v1 FlowElement
Definition of the current "pfo version".
Definition: FlowElement.h:16
JetConstituentModSequence::m_inNeutralFEDecorKeys
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > m_inNeutralFEDecorKeys
Definition: JetConstituentModSequence.h:105
JetConstituentModSequence::m_saveAsShallow
bool m_saveAsShallow
Definition: JetConstituentModSequence.h:77
python.xAODType.dummy
dummy
Definition: xAODType.py:4
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAODType::ParticleFlow
@ ParticleFlow
The object is a particle-flow object.
Definition: ObjectType.h:41
MSG::name
const std::string & name(Level lvl)
Convenience function for translating message levels to strings.
Definition: MsgLevel.cxx:19
JetConstituentModSequence::m_inNeutralPFOKey
SG::ReadHandleKey< xAOD::PFOContainer > m_inNeutralPFOKey
Definition: JetConstituentModSequence.h:89
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
JetConstituentModSequence::m_outNeutralFEKey
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outNeutralFEKey
Definition: JetConstituentModSequence.h:98
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
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
JetConstituentModSequence::copyModRecord
StatusCode copyModRecord(const SG::ReadHandleKey< T > &, const SG::WriteHandleKey< T > &) const
helper function to cast, shallow copy and record a container.
Definition: JetConstituentModSequence.h:121
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
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
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
JetConstituentModSequence::m_inChargedPFOKey
SG::ReadHandleKey< xAOD::PFOContainer > m_inChargedPFOKey
Definition: JetConstituentModSequence.h:86
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
JetConstituentModSequence::m_inChargedFEKey
SG::ReadHandleKey< xAOD::FlowElementContainer > m_inChargedFEKey
Definition: JetConstituentModSequence.h:94
a
TList * a
Definition: liststreamerinfos.cxx:10
h
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::setOriginalObjectLink
bool setOriginalObjectLink(const IParticle &original, IParticle &copy)
This function should be used by CP tools when they make a deep copy of an object in their correctedCo...
Definition: IParticleHelpers.cxx:30
plotBeamSpotMon.mon
mon
Definition: plotBeamSpotMon.py:67
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:623
JetConstituentModSequence::m_outAllFEKey
SG::WriteHandleKey< xAOD::FlowElementContainer > m_outAllFEKey
Definition: JetConstituentModSequence.h:100
JetConstituentModSequence::m_outTCCKey
SG::WriteHandleKey< xAOD::TrackCaloClusterContainer > m_outTCCKey
Definition: JetConstituentModSequence.h:84
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
calibdata.copy
bool copy
Definition: calibdata.py:27
SG::DataProxy
Definition: DataProxy.h:44
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Monitored::Timer
A monitored timer.
Definition: MonitoredTimer.h:32
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
fitman.k
k
Definition: fitman.py:528
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
JetConstituentModSequence::m_inChargedFEDecorKeys
SG::ReadDecorHandleKeyArray< xAOD::FlowElementContainer > m_inChargedFEDecorKeys
Definition: JetConstituentModSequence.h:104
JetConstituentModSequence::m_inputContainer
Gaudi::Property< std::string > m_inputContainer
Definition: JetConstituentModSequence.h:60