ATLAS Offline Software
Loading...
Searching...
No Matches
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
22
24
25public:
26
27 // iterator
28 typedef std::vector<const IRoiDescriptor*>::const_iterator roi_iterator;
29
30public:
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
126inline
127std::ostream& operator<<( std::ostream& s, const IRoiDescriptor& d ) {
128 return s << std::string(d);
129}
130
131
132#endif // IREGIONSELECTOR_INEWROIDESCRIPTOR_H
133
134
std::ostream & operator<<(std::ostream &s, const IRoiDescriptor &d)
#define z
Describes the API of the Region of Ineterest geometry.
virtual bool isFullscan() const =0
is this a full detector RoI?
virtual double rhoMax(double z) const =0
virtual double eta() const =0
virtual int version() const =0
which roi version?
virtual roi_iterator end() const =0
virtual double rhoMin(double z) const =0
accessors to calculate r position at position z along the RoI boundaries
virtual double drdzMinus() const =0
virtual double phiPlus() const =0
extreme phi values
virtual double zedMax(double r) const =0
virtual double zedPlus() const =0
the zed and eta values at the most forward and most rear ends of the RoI
virtual double dzdrMinus() const =0
return the gradients
virtual double phiMinus() const =0
virtual double zedOuterMinus() const =0
virtual double phi() const =0
Methods to retrieve data members.
IRoiDescriptor()
default constructor
virtual double zedMinus() const =0
virtual double zed() const =0
virtual double dzdrPlus() const =0
std::vector< constIRoiDescriptor * >::const_iterator roi_iterator
virtual const IRoiDescriptor * at(int i) const =0
find an RoiDescriptor constituent
virtual unsigned size() const =0
number of constituents
virtual double etaMinus() const =0
virtual double etaPlus() const =0
virtual ~IRoiDescriptor()
virtual roi_iterator begin() const =0
const limit iterators
virtual unsigned int roiWord() const =0
virtual unsigned int roiId() const =0
identifiers
virtual double drdzPlus() const =0
virtual bool composite() const =0
Super RoI access methods.
virtual unsigned int l1Id() const =0
virtual double zedOuterPlus() const =0
zed limits at some outer radius
virtual double zedMin(double r) const =0
useful methods to determine whether items lie partially within the RoI
int r
Definition globals.cxx:22