ATLAS Offline Software
CMAtrigger.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 
10  bool overlap,float width, const CMApatterns* patterns,
11  const RPCdigit* trigger_hit[3]) :
12  RPCtrigDataObject(patterns->number(),"CMA result"),
13  m_emulation(emulation),m_trigger(type,thres,overlap),
14  m_trigger_width(width),m_Kpatt(0),
15  m_cma_patterns(patterns),m_pivot_hit(trigger_hit[0]),
16  m_lowPt_hit(trigger_hit[1]),m_highPt_hit(trigger_hit[2])
17 {}
18 
19 
21  const CMApatterns* patterns) :
22  RPCtrigDataObject(patterns->number(),"CMA result"),
23  m_emulation(emulation),m_trigger(type,thres,false),
24  m_trigger_width(0.),m_Kpatt(0),
25  m_cma_patterns(patterns),m_pivot_hit(0),m_lowPt_hit(0),
26  m_highPt_hit(0)
27 {}
28 
29 
31  RPCtrigDataObject(patterns->number(),"CMA result"),
32  m_emulation(emulation),m_trigger(),
33  m_trigger_width(0.),m_Kpatt(0),
34  m_cma_patterns(patterns),
35  m_pivot_hit(0),m_lowPt_hit(0),m_highPt_hit(0)
36 {}
37 
38 
41  m_emulation(result.emulation()),m_trigger(result.trigger()),
42  m_trigger_width(result.trigger_width()),m_Kpatt(result.Kpatt()),
43  m_cma_patterns(result.patterns()),
44  m_pivot_hit(result.pivot_hit()),
45  m_lowPt_hit(result.lowPt_hit()),
46  m_highPt_hit(result.highPt_hit())
47 {}
48 
49 
52 {
53  static_cast<RPCtrigDataObject&>(*this) =
54  static_cast<const RPCtrigDataObject&>(cmaTrig);
55  m_emulation = cmaTrig.emulation();
56  m_trigger = cmaTrig.trigger();
57  m_trigger_width = cmaTrig.trigger_width();
58  m_Kpatt = cmaTrig.Kpatt();
59  m_cma_patterns = cmaTrig.patterns();
60  m_pivot_hit = cmaTrig.pivot_hit();
61  m_lowPt_hit = cmaTrig.lowPt_hit();
62  m_highPt_hit = cmaTrig.highPt_hit();
63 
64  return *this;
65 }
66 
67 void
69 {
70  if( m_emulation != cmaTrig.emulation() ) return;
71 
72  if( *this < cmaTrig )
73  {
74  m_trigger = cmaTrig.trigger();
75  m_trigger_width = cmaTrig.trigger_width();
76  m_Kpatt = cmaTrig.Kpatt();
77  m_cma_patterns = cmaTrig.patterns();
78  if(cmaTrig.pivot_hit()) m_pivot_hit = cmaTrig.pivot_hit();
79  if(cmaTrig.lowPt_hit()) m_lowPt_hit = cmaTrig.lowPt_hit();
80  if(cmaTrig.highPt_hit()) m_highPt_hit = cmaTrig.highPt_hit();
81  }
82 }
83 
84 
85 bool
86 CMAtrigger::operator==(const CMAtrigger& cmaTrig) const
87 {
88  if( m_cma_patterns == cmaTrig.patterns() &&
89  m_emulation == cmaTrig.emulation() &&
90  m_trigger == cmaTrig.trigger() &&
91  m_trigger_width == cmaTrig.trigger_width() &&
92  m_Kpatt == cmaTrig.Kpatt() &&
93  m_pivot_hit == cmaTrig.pivot_hit() &&
94  m_lowPt_hit == cmaTrig.lowPt_hit() &&
95  m_highPt_hit == cmaTrig.highPt_hit() )
96  {
97  return true;
98  }
99  return false;
100 }
101 
102 bool
103 CMAtrigger::operator!=(const CMAtrigger& cmaTrig) const
104 {
105  return !(*this == cmaTrig);
106 }
107 
108 bool
109 CMAtrigger::operator< (const CMAtrigger& cmaTrig) const
110 {
111  if ( m_trigger < cmaTrig.trigger() ) return true;
112  if ( m_trigger == cmaTrig.trigger() &&
113  m_trigger_width < cmaTrig.trigger_width()) return true;
114  return false;
115 }
116 
117 int
119 {
120  return m_cma_patterns->sector();
121 }
122 
123 const CMAidentity&
125 {
126  return m_cma_patterns->cma_parameters().id();
127 }
128 
129 void
130 CMAtrigger::set_Kpatt (const int Kpatt)
131 {
132  m_Kpatt = Kpatt;
133 }
134 
135 void
137 {
139 }
140 
141 void
143 {
144  m_pivot_hit = digit;
145 }
146 
147 void
149 {
150  m_lowPt_hit = digit;
151 }
152 
153 void
155 {
157 }
158 
159 void
160 CMAtrigger::Print(std::ostream& stream,bool detail) const
161 {
162  stream << m_trigger << std::endl;
163  if(detail)
164  {
165  m_cma_patterns->Print(stream,false);
166  if(m_lowPt_hit)
167  {
168  stream << "Low Pt trigger digits:" << std::endl;
169  stream << *m_lowPt_hit << std::endl;
170  }
171  if(m_pivot_hit)
172  {
173  stream << "Pivot trigger digits:" << std::endl;
174  stream << *m_pivot_hit << std::endl;
175  }
176  if(m_highPt_hit)
177  {
178  stream << "High Pt trigger digits:" << std::endl;
179  stream << *m_highPt_hit << std::endl;
180  }
181  }
182 
183 }
TrigType
TrigType
Definition: TRIGGERidentity.h:17
CMAtrigger::lowPt_hit
const RPCdigit * lowPt_hit(void) const
Definition: CMAtrigger.h:60
CMAtrigger::m_trigger_width
float m_trigger_width
Definition: CMAtrigger.h:27
get_generator_info.result
result
Definition: get_generator_info.py:21
CMAtrigger::set_Kpatt
void set_Kpatt(int Kpatt)
Definition: CMAtrigger.cxx:130
CMAtrigger::m_cma_patterns
const CMApatterns * m_cma_patterns
Definition: CMAtrigger.h:29
CMAtrigger::operator=
CMAtrigger operator=(const CMAtrigger &)
Definition: CMAtrigger.cxx:51
CMAtrigger::m_emulation
Lvl1RPCalgo m_emulation
Definition: CMAtrigger.h:25
patterns
std::vector< std::string > patterns
Definition: listroot.cxx:187
detail
Definition: extract_histogram_tag.cxx:14
CMAparameters::id
const CMAidentity & id() const
Definition: CMAparameters.cxx:17
CMAtrigger::operator==
bool operator==(const CMAtrigger &) const
Definition: CMAtrigger.cxx:86
checkRpcDigits.digit
digit
Definition: checkRpcDigits.py:186
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
CMAtrigger::set_highPt
void set_highPt(const RPCdigit *)
Definition: CMAtrigger.cxx:154
CMAtrigger::CMAtrigger
CMAtrigger(Lvl1RPCalgo, TrigType, Threshold, bool, float width, const CMApatterns *, const RPCdigit **)
CMAtrigger::set_pivot
void set_pivot(const RPCdigit *)
Definition: CMAtrigger.cxx:142
CMAtrigger::patterns
const CMApatterns * patterns(void) const
Definition: CMAtrigger.h:58
CMAtrigger::pivot_hit
const RPCdigit * pivot_hit(void) const
Definition: CMAtrigger.h:59
CMAtrigger::cma
const CMAidentity & cma(void) const
Definition: CMAtrigger.cxx:124
CMAtrigger::Print
void Print(std::ostream &, bool) const
Definition: CMAtrigger.cxx:160
CMApatterns::cma_parameters
const CMAparameters & cma_parameters(void) const
Definition: CMApatterns.h:87
CMAtrigger::sector
int sector(void) const
Definition: CMAtrigger.cxx:118
CMAtrigger::m_lowPt_hit
const RPCdigit * m_lowPt_hit
Definition: CMAtrigger.h:31
CMAtrigger::m_Kpatt
int m_Kpatt
Definition: CMAtrigger.h:28
CMAtrigger::trigger_width
float trigger_width(void) const
Definition: CMAtrigger.h:62
CMApatterns::Print
void Print(std::ostream &, bool) const
Definition: CMApatterns.cxx:684
CMAtrigger
Definition: CMAtrigger.h:23
python.selection.number
number
Definition: selection.py:20
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
RPCtrigDataObject
Definition: RPCtrigDataObject.h:15
CMAtrigger::Kpatt
int Kpatt(void) const
Definition: CMAtrigger.h:63
CMAtrigger::operator+=
void operator+=(const CMAtrigger &)
Definition: CMAtrigger.cxx:68
RPCdigit
Definition: RPCdigit.h:16
CMAtrigger::m_pivot_hit
const RPCdigit * m_pivot_hit
Definition: CMAtrigger.h:30
Lvl1RPCalgo
Lvl1RPCalgo
Definition: CMAtrigger.h:20
CMAtrigger::operator!=
bool operator!=(const CMAtrigger &) const
Definition: CMAtrigger.cxx:103
CMAtrigger::set_width
void set_width(const float width)
Definition: CMAtrigger.cxx:136
Threshold
Threshold
Definition: TRIGGERidentity.h:18
CMAidentity
Definition: CMAidentity.h:16
CMAtrigger::trigger
const TRIGGERidentity & trigger(void) const
Definition: CMAtrigger.h:57
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CMAtrigger::operator<
bool operator<(const CMAtrigger &) const
Definition: CMAtrigger.cxx:109
CMAtrigger::highPt_hit
const RPCdigit * highPt_hit(void) const
Definition: CMAtrigger.h:61
CMAtrigger::m_trigger
TRIGGERidentity m_trigger
Definition: CMAtrigger.h:26
CMApatterns.h
CMApatterns::sector
int sector(void) const
Definition: CMApatterns.h:86
CMApatterns
Definition: CMApatterns.h:21
CMAtrigger::set_lowPt
void set_lowPt(const RPCdigit *)
Definition: CMAtrigger.cxx:148
CMAtrigger.h
CMAtrigger::emulation
Lvl1RPCalgo emulation(void) const
Definition: CMAtrigger.h:56
PhysDESDM_Quirks.trigger
trigger
Definition: PhysDESDM_Quirks.py:27
CMAtrigger::m_highPt_hit
const RPCdigit * m_highPt_hit
Definition: CMAtrigger.h:32