|
ATLAS Offline Software
|
Go to the documentation of this file.
4 #ifndef HLTSEEDING_ROISUNPACKINGTOOLPHASE1_H
5 #define HLTSEEDING_ROISUNPACKINGTOOLPHASE1_H
20 template<
typename T_RoI,
typename T_RoIContainer, auto F_RoIWordGetter, const
char* N_RoIContainer, const
char* N_ThresholdType>
24 this,
"L1RoILinkName", N_RoIContainer,
25 "Name of the link to read from L1TriggerResult for L1 xAOD RoI container"};
28 this,
"L1RoIThresholdPatternsKey", std::string(N_RoIContainer)+
".thresholdPatterns",
29 "Name of the L1 xAOD RoI container decoration for the threshold patterns"};
32 this,
"RoIHalfWidthEta", 0.1,
"Size of RoI in eta"};
35 this,
"RoIHalfWidthPhi", 0.1,
"Size of RoI in phi"};
48 return StatusCode::SUCCESS;
54 return name.find(N_ThresholdType)==0 or
name.find(getProbeThresholdName(N_ThresholdType))==0;
56 return StatusCode::SUCCESS;
63 const HLT::IDSet& activeChains)
const override {
65 const bool doProbe = !m_decisionsKeyProbe.empty();
71 if (doProbe) decisionsProbe =
createAndStore(m_decisionsKeyProbe, ctx);
75 ATH_MSG_DEBUG(
"No " << N_ThresholdType <<
" RoIs in this event");
78 return StatusCode::SUCCESS;
91 std::optional<ThrVecRef> thresholds;
92 ATH_CHECK(getL1Thresholds(*l1Menu, N_ThresholdType, thresholds));
97 roiDescriptors->
push_back(std::make_unique<TrigRoiDescriptor>(
119 std::vector<TrigCompositeUtils::DecisionID> passedThresholdIDs;
122 uint64_t thresholdPattern = thrPatternAcc(*roi);
124 for (
const std::shared_ptr<TrigConf::L1Threshold>& thr : thresholds.value().get()) {
125 if ((thresholdPattern & (1 << thr->mapping())) == 0
u) {
continue;}
128 <<
" name" << (doProbe ?
"s " :
" ") << thr->name()
129 << (doProbe ?
" and "+getProbeThresholdName(thr->name()) :
""));
130 addChainsToDecision(
HLT::Identifier(thr->name()), decisionMain, activeChains);
131 if (doProbe) addChainsToDecision(
HLT::Identifier(getProbeThresholdName(thr->name())), decisionProbe, activeChains);
134 decisionMain->
setDetail(
"thresholds", passedThresholdIDs);
135 if (doProbe) decisionProbe->setDetail(
"thresholds", passedThresholdIDs);
148 return StatusCode::SUCCESS;
219 #endif //> !HLTSEEDING_ROISUNPACKINGTOOLPHASE1_H
bool setDetail(const std::string &name, const TYPE &value)
Set an TYPE detail on the object.
Group
Properties of a chain group.
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
const std::string & hltSeedingNodeName()
ElementLink< CONTAINER > objectLink(const std::string &name) const
Get the link with the requested name.
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
bool hasObjectLink(const std::string &name, const CLID clid=CLID_NULL) const
Check if a link to an object with a given name and type exists. CLID_NULL to not check type.
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
const std::string & initialRecRoIString()
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
@ u
Enums for curvilinear frames.
bool isValid() const
Test to see if the link can be dereferenced.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
bool setObjectLink(const std::string &name, const ElementLink< CONTAINER > &link)
Set the link to an object.
const std::string & initialRoIString()
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
::StatusCode StatusCode
StatusCode definition for legacy code.
pointer_type ptr()
Dereference the pointer.
Default, invalid implementation of ClassID_traits.
SG::WriteHandle< CONT > createAndStoreNoAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Creates and right away records the Container CONT with the key.
Class used to describe composite objects in the HLT.
Header file to be included by clients of the Monitored infrastructure.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ElementLink implementation for ROOT usage.
BaseConstReference getStorableObjectRef() const
Return a reference to the currently-referenced container object.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual double phi() const override final
Methods to retrieve data members.
std::set< HLT::Identifier > IDSet
virtual double eta() const override final
Handle class for reading a decoration on an object.
@ linkIndex
link index for multiple track and vertex matches
Declare a monitored scalar variable.
size_type size() const noexcept
Returns the number of elements in the collection.