25 "Whether to check if two objects are shallow copies of each other. "
26 "If this is not true then pointer equality will be used.");
28 "If greater than 0 then use the DR between two objects to check if "
29 "they are the same object.");
31 "The input prefix to expect at the beginning of the TrigComposite "
35 "Whether to remap element links which are broken in some derivations for AnalysisBase");
37 "Containers whose links need remapping");
38 declareProperty(
"RemapCLIDs", m_remapCLIDs,
"CLIDs for those containers");
47 ATH_MSG_INFO(
"Remap broken links? " << m_remapBrokenLinks);
48 if (m_remapBrokenLinks)
50 if (m_remapContainers.size() != m_remapCLIDs.size())
52 ATH_MSG_ERROR(
"Number of containers and CLIDs to remap do not match!");
53 return StatusCode::FAILURE;
56 for (std::size_t idx = 0; idx < m_remapContainers.size(); ++idx)
58 const std::string &name = m_remapContainers[idx];
59 m_keyRemap[hashContainer(name, iparticleCLID)] = hashContainer(name, m_remapCLIDs[idx]);
67 return StatusCode::SUCCESS;
72 const std::string& chain,
75 return match({&recoObject}, chain);
79 const std::vector<const xAOD::IParticle*>& recoObjects,
80 const std::string& chain,
86 std::replace(containerName.begin(), containerName.end(),
'.',
'_');
88 if (
evtStore()->retrieve(composites, containerName).isFailure() ){
89 ATH_MSG_ERROR(
"Failed to retrieve composite container for chain "+chain);
90 ATH_MSG_ERROR(
"Please check your derivation to see if the container is there");
91 ATH_MSG_ERROR(
"This likely means the trigger is not in your file's menu");
92 throw std::runtime_error(
93 "Failed to retrieve composite corresponding to chain " + chain);
97 "TrigMatchedObjects");
107 const std::vector<const xAOD::IParticle*>&
offline)
const
112 std::vector<const xAOD::IParticle*> online;
113 online.reserve(onlineLinks.size() );
121 online.push_back(*link);
122#ifdef XAOD_STANDALONE
123 else if (m_remapBrokenLinks)
133 bool isMatched =
false;
134 for (
auto itr = online.begin(); itr != online.end(); ++itr) {
167 return lhsOrig == rhsOrig;
uint32_t CLID
The Class ID type.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
ElementLink implementation for ROOT usage.
SG::ConstAccessor< T, ALLOC > ConstAccessor
Class providing the definition of the 4-vector interface.
XAOD_AUXDATA_DEPRECATED bool isAvailable(const std::string &name, const std::string &clsname="") const
Check if a user property is available for reading or not.
A crc-64 implementation, using pclmul where possible.
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
uint64_t crc64addint(uint64_t crc, uint64_t x)
Extend a previously-calculated CRC to include an int.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
The common trigger namespace for trigger analysis tools.
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.