22 {
23
24 if(ips.size() != 2){
26 ss <<
"Dijet::isSatisfied must see exactly 2 particles, but received "
27 << ips.size()
28 << '\n';
29
30 throw std::runtime_error(
ss.str());
31 }
32
33 auto j0 = ips[0];
35
36 auto eta0 = j0->eta();
38 auto adeta = std::abs(eta0 -eta1);
39
41
42 if(collector){
43 std::stringstream ss0;
44 const void* address = static_cast<const void*>(this);
45 ss0 << "DijetDEtaCondition: (" << address
46 << ") adeta " << adeta
47 << " pass: " <<std::boolalpha << pass << " jet group: \n";
48
49 std::stringstream ss1;
50
51 for(const auto& ip : ips){
52 address =
static_cast<const void*
>(
ip.get());
53 ss1 <<
" " << address <<
" " <<
ip->eta() <<
" e " <<
ip->e() <<
'\n';
54 }
55 ss1 << '\n';
56 collector ->
collect(ss0.str(), ss1.str());
57 }
58 return pass;
59
60}
void collect(const HLT::TriggerElement *te, std::vector< Trig::Feature< T > > &data, const std::string &label, unsigned int condition, const std::string &teName, const HLT::TrigNavStructure *navstructure)
actual feature acceess implementation It has (thanks to the ClassTraits) functionality to flatten con...
setEt setPhi setE277 setWeta2 eta1