ATLAS Offline Software
RoiFilter.h
Go to the documentation of this file.
1 /* emacs: this is -*- c++ -*- */
12 #ifndef ROIFILTER_H
13 #define ROIFILTER_H
14 
15 #include <iostream>
16 #include <cmath>
17 
19 
20 
21 class RoiFilter {
22 
23 public:
24 
25  RoiFilter( double eta=0, bool comp=false, size_t m=1 ) : m_eta(eta), m_comp(comp), m_mult(m) { }
27 
28  double eta() const { return m_eta; }
29  bool composite() const { return m_comp; }
30  size_t size() const { return m_mult; }
31 
32  bool filter( const TIDARoiDescriptor* roi ) {
33 
34  if ( !composite() ) {
35  if ( !roi->composite() && std::fabs(roi->eta())<=eta() ) return true;
36  else return false;
37  }
38 
39  if ( roi->size()<size() ) return false;
40 
41  size_t mult = 0;
42  for ( size_t i=0 ; i<roi->size() ; i++ ) {
43  if ( std::fabs(roi->at(i)->eta())<=eta() ) mult++;
44  }
45 
46  if ( mult<size() ) return false;
47 
48  return true;
49  }
50 
51  bool filter( const TIDARoiDescriptor& roi ) { return filter( &roi ); }
52 
53 private:
54 
55  double m_eta;
56  bool m_comp;
57  size_t m_mult;
58 
59 
60 };
61 
62 inline std::ostream& operator<<( std::ostream& s, const RoiFilter& r ) {
63  s << "[ RoiFilter: eta: " << r.eta();
64  if ( r.composite() ) s << "\tcomposite multiplicity: " << r.size();
65  return s << " ]";
66 }
67 
68 
69 #endif // ROIFILTER_H
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
plotting.yearwise_luminosity_vs_mu.comp
comp
Definition: yearwise_luminosity_vs_mu.py:23
beamspotman.r
def r
Definition: beamspotman.py:676
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
RoiFilter
Definition: RoiFilter.h:21
RoiFilter::m_comp
bool m_comp
Definition: RoiFilter.h:56
TIDARoiDescriptor
Describes the Region of Ineterest geometry It has basically 8 parameters.
Definition: TIDARoiDescriptor.h:42
TIDARoiDescriptor.h
TIDARoiDescriptor::size
size_t size() const
Definition: TIDARoiDescriptor.h:176
RoiFilter::filter
bool filter(const TIDARoiDescriptor &roi)
Definition: RoiFilter.h:51
TIDARoiDescriptor::composite
bool composite() const
composite RoI methods
Definition: TIDARoiDescriptor.h:174
lumiFormat.i
int i
Definition: lumiFormat.py:85
RoiFilter::size
size_t size() const
Definition: RoiFilter.h:30
RoiFilter::m_mult
size_t m_mult
Definition: RoiFilter.h:57
RoiFilter::RoiFilter
RoiFilter(TIDARoiDescriptor)
Definition: RoiFilter.h:26
TIDARoiDescriptor::eta
double eta() const
Definition: TIDARoiDescriptor.h:134
RoiFilter::filter
bool filter(const TIDARoiDescriptor *roi)
Definition: RoiFilter.h:32
TIDARoiDescriptor::at
const TIDARoiDescriptor * at(int i) const
gets phi half-width
Definition: TIDARoiDescriptor.h:179
RoiFilter::m_eta
double m_eta
Definition: RoiFilter.h:55
RoiFilter::RoiFilter
RoiFilter(double eta=0, bool comp=false, size_t m=1)
Definition: RoiFilter.h:25
operator<<
std::ostream & operator<<(std::ostream &s, const RoiFilter &r)
Definition: RoiFilter.h:62
RoiFilter::eta
double eta() const
Definition: RoiFilter.h:28
RoiFilter::composite
bool composite() const
Definition: RoiFilter.h:29