ATLAS Offline Software
IRoiDescriptor.h
Go to the documentation of this file.
1 // emacs: this is -*- c++ -*-
2 /*
3  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
4 */
5 //
6 // @file IRoiDescriptor.h
7 //
8 // RoiDescriptor interface - only basic accessors
9 //
10 // @author sutt@cern.ch
11 //
12 
13 #ifndef IREGIONSELECTOR_IROIDESCRIPTOR_H
14 #define IREGIONSELECTOR_IROIDESCRIPTOR_H
15 
16 #include <vector>
17 #include <iostream>
18 
24 
25 public:
26 
27  // iterator
28  typedef std::vector<const IRoiDescriptor*>::const_iterator roi_iterator;
29 
30 public:
31 
36 
37  // Destructor
38  virtual ~IRoiDescriptor() { }
39 
41 
43  virtual double phi() const = 0;
44  virtual double eta() const = 0;
45  virtual double zed() const = 0;
46 
49  virtual double zedPlus() const = 0;
50  virtual double zedMinus() const = 0;
51 
52  virtual double etaPlus() const = 0;
53  virtual double etaMinus() const = 0;
54 
56  virtual double phiPlus() const = 0;
57  virtual double phiMinus() const = 0;
58 
59 
61  virtual unsigned int roiId() const = 0;
62  virtual unsigned int l1Id() const = 0;
63  virtual unsigned int roiWord() const = 0;
64 
65 
67  virtual int version() const = 0;
68 
70  virtual operator std::string() const = 0;
71 
72 
74  virtual bool isFullscan() const = 0;
75 
76 
78 
80  virtual bool composite() const = 0;
81 
83  virtual unsigned size() const = 0;
84 
86  virtual const IRoiDescriptor* at(int i) const = 0;
87 
89  virtual roi_iterator begin() const = 0;
90  virtual roi_iterator end() const = 0;
91 
92 
93 
96 
99  virtual double zedMin(double r) const = 0;
100  virtual double zedMax(double r) const = 0;
101 
104  virtual double rhoMin(double z) const = 0;
105  virtual double rhoMax(double z) const = 0;
106 
107 
109  virtual double dzdrMinus() const = 0;
110  virtual double dzdrPlus() const = 0;
111 
112  virtual double drdzMinus() const = 0;
113  virtual double drdzPlus() const = 0;
114 
116  virtual double zedOuterPlus() const = 0;
117  virtual double zedOuterMinus() const = 0;
118 
119 
120 };
121 
122 
124 // helper operators
125 
126 inline
127 std::ostream& operator<<( std::ostream& s, const IRoiDescriptor& d ) {
128  return s << std::string(d);
129 }
130 
131 
132 #endif // IREGIONSELECTOR_INEWROIDESCRIPTOR_H
133 
134 
IRoiDescriptor::phi
virtual double phi() const =0
Methods to retrieve data members.
beamspotman.r
def r
Definition: beamspotman.py:676
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
IRoiDescriptor::begin
virtual roi_iterator begin() const =0
const limit iterators
IRoiDescriptor::roi_iterator
std::vector< const IRoiDescriptor * >::const_iterator roi_iterator
Definition: IRoiDescriptor.h:28
hist_file_dump.d
d
Definition: hist_file_dump.py:137
IRoiDescriptor::IRoiDescriptor
IRoiDescriptor()
default constructor
Definition: IRoiDescriptor.h:35
IRoiDescriptor::etaMinus
virtual double etaMinus() const =0
IRoiDescriptor::size
virtual unsigned size() const =0
number of constituents
IRoiDescriptor::rhoMax
virtual double rhoMax(double z) const =0
IRoiDescriptor::zedMax
virtual double zedMax(double r) const =0
IRoiDescriptor::end
virtual roi_iterator end() const =0
IRoiDescriptor::etaPlus
virtual double etaPlus() const =0
IRoiDescriptor::dzdrMinus
virtual double dzdrMinus() const =0
return the gradients
IRoiDescriptor::zedMin
virtual double zedMin(double r) const =0
useful methods to determine whether items lie partially within the RoI
IRoiDescriptor::dzdrPlus
virtual double dzdrPlus() const =0
IRoiDescriptor::~IRoiDescriptor
virtual ~IRoiDescriptor()
Definition: IRoiDescriptor.h:38
IRoiDescriptor::eta
virtual double eta() const =0
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
IRoiDescriptor
Describes the API of the Region of Ineterest geometry.
Definition: IRoiDescriptor.h:23
IRoiDescriptor::zedOuterPlus
virtual double zedOuterPlus() const =0
zed limits at some outer radius
IRoiDescriptor::phiMinus
virtual double phiMinus() const =0
IRoiDescriptor::roiId
virtual unsigned int roiId() const =0
identifiers
IRoiDescriptor::drdzMinus
virtual double drdzMinus() const =0
IRoiDescriptor::phiPlus
virtual double phiPlus() const =0
extreme phi values
IRoiDescriptor::l1Id
virtual unsigned int l1Id() const =0
IRoiDescriptor::zedOuterMinus
virtual double zedOuterMinus() const =0
IRoiDescriptor::zedPlus
virtual double zedPlus() const =0
the zed and eta values at the most forward and most rear ends of the RoI
operator<<
std::ostream & operator<<(std::ostream &s, const IRoiDescriptor &d)
Definition: IRoiDescriptor.h:127
IRoiDescriptor::isFullscan
virtual bool isFullscan() const =0
is this a full detector RoI?
IRoiDescriptor::zed
virtual double zed() const =0
IRoiDescriptor::zedMinus
virtual double zedMinus() const =0
IRoiDescriptor::at
virtual const IRoiDescriptor * at(int i) const =0
find an RoiDescriptor constituent
IRoiDescriptor::version
virtual int version() const =0
which roi version?
IRoiDescriptor::roiWord
virtual unsigned int roiWord() const =0
IRoiDescriptor::rhoMin
virtual double rhoMin(double z) const =0
accessors to calculate r position at position z along the RoI boundaries
IRoiDescriptor::drdzPlus
virtual double drdzPlus() const =0
IRoiDescriptor::composite
virtual bool composite() const =0
Super RoI access methods.