ATLAS Offline Software
Loading...
Searching...
No Matches
CompoundCondition Class Reference

#include <CompoundCondition.h>

Inheritance diagram for CompoundCondition:
Collaboration diagram for CompoundCondition:

Public Member Functions

 CompoundCondition (std::vector< Condition > &elements)
 CompoundCondition (const CompoundCondition &)=delete
virtual bool isSatisfied (const HypoJetVector &, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
virtual unsigned int capacity () const override
std::string toString () const override

Private Attributes

std::vector< Conditionm_elements
unsigned int m_capacity

Detailed Description

Definition at line 22 of file CompoundCondition.h.

Constructor & Destructor Documentation

◆ CompoundCondition() [1/2]

CompoundCondition::CompoundCondition ( std::vector< Condition > & elements)

Definition at line 13 of file CompoundCondition.cxx.

13 {
14
15 for(auto& el : elements){
16 if(el != nullptr) {
17 m_elements.push_back(std::move(el));
18 }
19 }
20 unsigned int capacity{0};
21
22 // mis-configuration of elemental Conditions with differing capacities
23 // not caught...
24 if(!m_elements.empty()){
25 capacity = (m_elements.front())->capacity();
26 }
28}
std::vector< Condition > m_elements
virtual unsigned int capacity() const override
unsigned int m_capacity

◆ CompoundCondition() [2/2]

CompoundCondition::CompoundCondition ( const CompoundCondition & )
delete

Member Function Documentation

◆ capacity()

virtual unsigned int CompoundCondition::capacity ( ) const
inlineoverridevirtual

Implements ICondition.

Definition at line 31 of file CompoundCondition.h.

31{return m_capacity;}

◆ isSatisfied()

bool CompoundCondition::isSatisfied ( const HypoJetVector & ips,
const std::unique_ptr< ITrigJetHypoInfoCollector > & collector ) const
overridevirtual

Implements ICondition.

Definition at line 31 of file CompoundCondition.cxx.

32 {
33
34 bool pass{true};
35 for(const auto& el : m_elements){
36 pass = pass and (el->isSatisfied(ips, collector));
37 if(!pass){break;}
38 }
39
40
41 if(collector){
42 const void* address = static_cast<const void*>(this);
43
44 std::stringstream ss0;
45 ss0 << "CompoundCondition: (" << address << ") "
46 << " pass: " << std::boolalpha << pass << '\n';
47
48 std::stringstream ss1;
49 for(const auto& ip : ips){
50 auto j_addr = static_cast<const void*>(ip.get());
51 ss1 << " jet : ("<< j_addr << ")\n";
52 }
53 collector->collect(ss0.str(), ss1.str());
54 }
55 return pass;
56}
virtual void collect(const std::string &, const std::string &)=0

◆ toString()

std::string CompoundCondition::toString ( ) const
overridevirtual

Implements ICondition.

Definition at line 59 of file CompoundCondition.cxx.

59 {
60 std::stringstream ss;
61 ss << "CompoundCondition (" << this << ") Capacity: " << m_capacity << '\n';
62 for(const auto& el :m_elements){
63 ss << el->toString() + '\n';
64 }
65 return ss.str();
66}
static Double_t ss

Member Data Documentation

◆ m_capacity

unsigned int CompoundCondition::m_capacity
private

Definition at line 39 of file CompoundCondition.h.

◆ m_elements

std::vector<Condition> CompoundCondition::m_elements
private

Definition at line 37 of file CompoundCondition.h.


The documentation for this class was generated from the following files: