13 const std::string& name,
14 const IInterface* parent)
21 return StatusCode::SUCCESS;
27 const EventContext& )
const
30 std::vector<ElementLink<TrigRoiDescriptorCollection>> selected_rois;
34 if(combination.size() != 2){
36 "Expecting to combine exactly two Decision Objects, but instead found "
37 << combination.size() <<
". Will throw a runtime error");
38 throw std::runtime_error(
39 "Expecting to combine exactly two Decision Objects, but instead found " +
40 std::to_string(combination.size()));
43 for (
const auto& el: combination){
44 const auto EL= el.second;
45 const auto dec= (*EL);
47 selected_rois.push_back(roiLink);
50 auto roiLink1=selected_rois[0];
51 auto roiLink2=selected_rois[1];
53 float Dr =
deltaR((*roiLink1)->eta(), (*roiLink2)->eta(), (*roiLink1)->phi(), (*roiLink2)->phi());
54 ATH_MSG_DEBUG(
"Found two RoIs with eta/phi " << (*roiLink1)->eta() <<
"/"<<(*roiLink1)->phi() <<
" and "<< (*roiLink2)->eta()<<
"/"<<(*roiLink2)->phi() <<
" with Dr="<<Dr);
68 double dPhi=std::remainder( phi1 - phi2, 2*
M_PI );
69 double dEta=std::fabs(eta1-eta2);
70 return std::sqrt(dEta*dEta + dPhi*dPhi);
This module defines the arguments passed from the BATCH driver to the BATCH worker.
LinkInfo< T > findLink(const Decision *start, const std::string &linkName, const bool suppressMultipleLinksWarning=false)
Perform a recursive search for ElementLinks of type T and name 'linkName', starting from Decision obj...
const std::string & initialRoIString()