|
ATLAS Offline Software
|
Go to the documentation of this file.
23 return StatusCode::SUCCESS;
34 const std::vector<LinkInfo<ViewContainer>> myViews = findLinks<ViewContainer>(outputDecision,
viewString(), TrigDefs::allFeaturesOfType);
45 ATH_MSG_ERROR(
"Of the " << myViews.size() <<
" Views in the history of Decision object with index " << outputDecision->index()
47 return StatusCode::FAILURE;
53 const std::vector<LinkInfo<ViewContainer>> myView = findLinks<ViewContainer>(outputDecision,
viewString(), TrigDefs::lastFeatureOfType);
54 if (myView.size() != 1) {
55 ATH_MSG_ERROR(
"Did not find exactly one most-recent '" <<
viewString() <<
"' for Decision object index " << outputDecision->index()
56 <<
", found " << myView.size());
57 if (myView.size() > 1) {
58 ATH_MSG_ERROR(
"Was this Decision Object was merged after having followed different reconstruction paths in previous Steps?");
59 ATH_MSG_ERROR(
"Need more information about which of these Views to look in to find the desired '" <<
m_inViewRoIKey.
key() <<
"' TrigRoiDescriptorCollection");
61 return StatusCode::FAILURE;
63 viewToFetchFrom = myView.at(0);
70 if (roiReadHandle->
size() != 1) {
72 <<
" has " << roiReadHandle->
size() <<
" TrigRoiDescriptor inside. We require exactly one.");
73 return StatusCode::FAILURE;
82 auto oldroi = roiReadHandle->
at(0);
83 ATH_MSG_DEBUG(
" Old ROI size " <<
" eta="<< oldroi->eta() <<
" +- " << oldroi->etaPlus()-oldroi->eta() \
84 <<
" phi="<< oldroi->phi() <<
" +- " << oldroi->phiPlus()-oldroi->phi() \
85 <<
" zed="<< oldroi->zed() <<
" +- " << oldroi->zedPlus()-oldroi->zed());
87 const double reta = oldroi->eta();
90 const double rphi = oldroi->phi();
93 const double rzed = oldroi->zed();
96 std::unique_ptr<TrigRoiDescriptor> roi = std::make_unique<TrigRoiDescriptor>(reta, retam, retap, rphi, rphim, rphip, rzed, rzedm, rzedp);
98 <<
" phi="<< roi->
phi() <<
" +- " << roi->
phiPlus()-roi->
phi() \
99 <<
" zed="<< roi->
zed() <<
" +- " << roi->
zedPlus()-roi->
zed());
100 roisWriteHandle->
push_back( roi.release() );
105 outputDecision->setObjectLink(
roiString(), newRoiEL);
108 return StatusCode::SUCCESS;
ElementLink< T > link
Link to the feature.
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
const std::string & key() const
Return the StoreGate ID for the referenced object.
::StatusCode StatusCode
StatusCode definition for legacy code.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
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.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual double zed() const override final
value_type push_back(value_type pElem)
Add an element to the end of the collection.
virtual double etaPlus() const override final
gets eta at zedPlus
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
virtual double phi() const override final
Methods to retrieve data members.
virtual double eta() const override final
const std::string & roiString()
Athena::TPCnvVers::Current TrigRoiDescriptor
const T * at(size_type n) const
Access an element, as an rvalue.
virtual double phiPlus() const override final
gets phiPlus
size_type size() const noexcept
Returns the number of elements in the collection.
const std::string & viewString()
virtual double zedPlus() const override final
z at the most forward end of the RoI