00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef IREGIONSELECTOR_IROIDESCRIPTOR_H
00013 #define IREGIONSELECTOR_IROIDESCRIPTOR_H
00014
00015 #include <vector>
00016 #include <iostream>
00017
00019
00020
00025 class IRoiDescriptor {
00026
00027 public:
00028
00029
00030 typedef std::vector<const IRoiDescriptor*>::const_iterator roi_iterator;
00031
00032 public:
00033
00037 IRoiDescriptor() { }
00038
00039
00040 virtual ~IRoiDescriptor() { }
00041
00043
00045 virtual double phi() const = 0;
00046 virtual double eta() const = 0;
00047 virtual double zed() const = 0;
00048
00051 virtual double zedPlus() const = 0;
00052 virtual double zedMinus() const = 0;
00053
00054 virtual double etaPlus() const = 0;
00055 virtual double etaMinus() const = 0;
00056
00058 virtual double phiPlus() const = 0;
00059 virtual double phiMinus() const = 0;
00060
00061
00063 virtual unsigned int roiId() const = 0;
00064 virtual unsigned int l1Id() const = 0;
00065 virtual unsigned int roiWord() const = 0;
00066
00067
00069 virtual int version() const = 0;
00070
00072 virtual operator std::string() const = 0;
00073
00074
00076 virtual bool isFullscan() const = 0;
00077
00078
00080
00082 virtual bool composite() const = 0;
00083
00085 virtual unsigned size() const = 0;
00086
00088 virtual const IRoiDescriptor* at(int i) const = 0;
00089
00091 virtual roi_iterator begin() const = 0;
00092 virtual roi_iterator end() const = 0;
00093
00094
00095
00098
00101 virtual double zedMin(double r) const = 0;
00102 virtual double zedMax(double r) const = 0;
00103
00106 virtual double rhoMin(double z) const = 0;
00107 virtual double rhoMax(double z) const = 0;
00108
00109
00111 virtual double dzdrMinus() const = 0;
00112 virtual double dzdrPlus() const = 0;
00113
00114 virtual double drdzMinus() const = 0;
00115 virtual double drdzPlus() const = 0;
00116
00118 virtual double zedOuterPlus() const = 0;
00119 virtual double zedOuterMinus() const = 0;
00120
00121
00122 };
00123
00124
00126
00127
00128 inline
00129 std::ostream& operator<<( std::ostream& s, const IRoiDescriptor& d ) {
00130 return s << std::string(d);
00131 }
00132
00133
00135
00136
00137 #endif // IREGIONSELECTOR_INEWROIDESCRIPTOR_H
00138
00139