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 24 of file CompoundCondition.h.

Constructor & Destructor Documentation

◆ CompoundCondition() [1/2]

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

Definition at line 11 of file CompoundCondition.cxx.

11 {
12
13 for(auto& el : elements){
14 if(el != nullptr) {
15 m_elements.push_back(std::move(el));
16 }
17 }
18 unsigned int capacity{0};
19
20 // mis-configuration of elemental Conditions with differing capacities
21 // not caught...
22 if(!m_elements.empty()){
23 capacity = (m_elements.front())->capacity();
24 }
26}
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 33 of file CompoundCondition.h.

33{return m_capacity;}

◆ isSatisfied()

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

Implements ICondition.

Definition at line 29 of file CompoundCondition.cxx.

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

◆ toString()

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

Implements ICondition.

Definition at line 57 of file CompoundCondition.cxx.

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

Member Data Documentation

◆ m_capacity

unsigned int CompoundCondition::m_capacity
private

Definition at line 41 of file CompoundCondition.h.

◆ m_elements

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

Definition at line 39 of file CompoundCondition.h.


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