gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-2191-ga4742ac
a Global And Modular Bsm Inference Tool
Gambit::ColliderBit::OPALCharginoHadronicLimitAt208GeV Class Reference

A class to contain the limit data from OPAL_EPJC35_2004_1, figure 5b. More...

#include <OPALGauginoLimits.hpp>

Inheritance diagram for Gambit::ColliderBit::OPALCharginoHadronicLimitAt208GeV:
Collaboration diagram for Gambit::ColliderBit::OPALCharginoHadronicLimitAt208GeV:

Public Member Functions

Point interpolation, conversion, and region checks
P2 convertPt (double x, double y) const
 Convert a point from pixel units to axis units. More...
 
bool isWithinExclusionRegion (double x, double y, double) const
 Check to see if the point is within the exclusion region. More...
 
Construction, initializing with all necessary data from the plot
 OPALCharginoHadronicLimitAt208GeV ()
 
- Public Member Functions inherited from Gambit::ColliderBit::BaseLimitContainer
 BaseLimitContainer ()
 
virtual ~BaseLimitContainer ()
 
virtual double specialLimit (double, double) const
 Return the limit value outside of the exclusion region. More...
 
double limitAverage (double x, double y, double mZ) const
 Two-pi averaging interpolator to find limits between limit curves. More...
 
void dumpPlotData (double xlow, double xhigh, double ylow, double yhigh, double mZ, std::string filename, int ngrid=100) const
 Dump limit average data into a file for average debugging. More...
 
void dumpLightPlotData (std::string filename, int nperLine=20) const
 Dump input limit contour data into a file for limit debugging. More...
 

Additional Inherited Members

- Protected Types inherited from Gambit::ColliderBit::BaseLimitContainer
typedef std::vector< P2Corners
 
typedef std::vector< LineSegmentContours
 
typedef ContoursContoursPointer
 
typedef std::map< unsigned, Contours * > LimitContours
 
typedef std::pair< unsigned, Contours * > LimitContourEntry
 
- Protected Attributes inherited from Gambit::ColliderBit::BaseLimitContainer
std::vector< double_limitValuesSorted
 
LimitContours _limitContours
 
P2 _externalPoint
 

Detailed Description

A class to contain the limit data from OPAL_EPJC35_2004_1, figure 5b.

Definition at line 9 of file OPALGauginoLimits.hpp.

Constructor & Destructor Documentation

◆ OPALCharginoHadronicLimitAt208GeV()

Gambit::ColliderBit::OPALCharginoHadronicLimitAt208GeV::OPALCharginoHadronicLimitAt208GeV ( )

0.1pb /////

Note
: This limit has multiple regions, so care must be taken below

Definition at line 19 of file OPALGauginoLimits.cpp.

References Gambit::ColliderBit::BaseLimitContainer::_limitContours, Gambit::ColliderBit::BaseLimitContainer::_limitValuesSorted, convertPt(), and Gambit::ColliderBit::makeLine().

20  {
22  _limitValuesSorted.push_back(0.1);
23  _limitValuesSorted.push_back(1.0);
24  _limitValuesSorted.push_back(2.0);
25 
27  Corners corners;
28  ContoursPointer contoursPointer;
29  size_t oldSize;
30 
33  contoursPointer = new Contours();
34 
35  corners.clear();
36  oldSize = contoursPointer->size();
37  corners.push_back(convertPt(236.00,497.00));
38  corners.push_back(convertPt(236.00,473.00));
39  corners.push_back(convertPt(350.00,473.00));
40  corners.push_back(convertPt(350.00,497.00));
41  corners.push_back(convertPt(236.00,497.00));
42  contoursPointer->resize(oldSize + corners.size() - 1);
43  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
44  contoursPointer->begin() + oldSize, makeLine);
45 
46  corners.clear();
47  oldSize = contoursPointer->size();
48  corners.push_back(convertPt(236.00,449.00));
49  corners.push_back(convertPt(236.00,424.00));
50  corners.push_back(convertPt(350.00,424.00));
51  corners.push_back(convertPt(350.00,449.00));
52  corners.push_back(convertPt(465.00,449.00));
53  corners.push_back(convertPt(465.00,436.00));
54  corners.push_back(convertPt(580.00,436.00));
55  corners.push_back(convertPt(580.00,425.00));
56  corners.push_back(convertPt(465.00,425.00));
57  corners.push_back(convertPt(465.00,413.00));
58  corners.push_back(convertPt(350.00,413.00));
59  corners.push_back(convertPt(350.00,389.00));
60  corners.push_back(convertPt(465.00,389.00));
61  corners.push_back(convertPt(465.00,400.00));
62  corners.push_back(convertPt(580.00,400.00));
63  corners.push_back(convertPt(580.00,412.00));
64  corners.push_back(convertPt(694.00,412.00));
65  corners.push_back(convertPt(694.00,400.00));
66  corners.push_back(convertPt(775.00,400.00));
67  corners.push_back(convertPt(775.00,388.00));
68  corners.push_back(convertPt(809.00,388.00));
69  corners.push_back(convertPt(809.00,413.00));
70  corners.push_back(convertPt(695.00,413.00));
71  corners.push_back(convertPt(695.00,437.00));
72  corners.push_back(convertPt(580.00,437.00));
73  corners.push_back(convertPt(580.00,449.00));
74  corners.push_back(convertPt(465.00,449.00));
75  corners.push_back(convertPt(465.00,461.00));
76  corners.push_back(convertPt(350.00,461.00));
77  corners.push_back(convertPt(350.00,449.00));
78  corners.push_back(convertPt(236.00,449.00));
79  contoursPointer->resize(oldSize + corners.size() - 1);
80  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
81  contoursPointer->begin() + oldSize, makeLine);
82 
83  corners.clear();
84  oldSize = contoursPointer->size();
85  corners.push_back(convertPt(775.00,473.00));
86  corners.push_back(convertPt(775.00,460.00));
87  corners.push_back(convertPt(809.00,460.00));
88  corners.push_back(convertPt(809.00,473.00));
89  corners.push_back(convertPt(775.00,473.00));
90  contoursPointer->resize(oldSize + corners.size() - 1);
91  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
92  contoursPointer->begin() + oldSize, makeLine);
93 
94  corners.clear();
95  oldSize = contoursPointer->size();
96  corners.push_back(convertPt(775.00,269.00));
97  corners.push_back(convertPt(775.00,256.00));
98  corners.push_back(convertPt(809.00,256.00));
99  corners.push_back(convertPt(809.00,269.00));
100  corners.push_back(convertPt(775.00,269.00));
101  contoursPointer->resize(oldSize + corners.size() - 1);
102  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
103  contoursPointer->begin() + oldSize, makeLine);
104 
105  corners.clear();
106  oldSize = contoursPointer->size();
107  corners.push_back(convertPt(350.00,377.00));
108  corners.push_back(convertPt(350.00,364.00));
109  corners.push_back(convertPt(465.00,364.00));
110  corners.push_back(convertPt(465.00,340.00));
111  corners.push_back(convertPt(580.00,340.00));
112  corners.push_back(convertPt(580.00,353.00));
113  corners.push_back(convertPt(694.00,353.00));
114  corners.push_back(convertPt(694.00,329.00));
115  corners.push_back(convertPt(580.00,329.00));
116  corners.push_back(convertPt(580.00,292.00));
117  corners.push_back(convertPt(660.00,292.00));
118  corners.push_back(convertPt(660.00,304.00));
119  corners.push_back(convertPt(775.00,304.00));
120  corners.push_back(convertPt(775.00,293.00));
121  corners.push_back(convertPt(694.00,293.00));
122  corners.push_back(convertPt(694.00,280.00));
123  corners.push_back(convertPt(809.00,280.00));
124  corners.push_back(convertPt(809.00,365.00));
125  corners.push_back(convertPt(775.00,365.00));
126  corners.push_back(convertPt(775.00,353.00));
127  corners.push_back(convertPt(695.00,353.00));
128  corners.push_back(convertPt(695.00,377.00));
129  corners.push_back(convertPt(350.00,377.00));
130  contoursPointer->resize(oldSize + corners.size() - 1);
131  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
132  contoursPointer->begin() + oldSize, makeLine);
133 
134  _limitContours.insert(LimitContourEntry(0, contoursPointer));
135 
137  corners.clear();
138  corners.push_back(convertPt(179.00,269.00));
139  corners.push_back(convertPt(191.00,269.00));
140  corners.push_back(convertPt(191.00,257.00));
141  corners.push_back(convertPt(236.00,257.00));
142  corners.push_back(convertPt(236.00,245.00));
143  corners.push_back(convertPt(351.00,245.00));
144  corners.push_back(convertPt(351.00,209.00));
145  corners.push_back(convertPt(466.00,209.00));
146  corners.push_back(convertPt(466.00,185.00));
147  corners.push_back(convertPt(580.00,185.00));
148  corners.push_back(convertPt(580.00,161.00));
149  corners.push_back(convertPt(695.00,161.00));
150  corners.push_back(convertPt(695.00,149.00));
151  corners.push_back(convertPt(775.00,149.00));
152  corners.push_back(convertPt(775.00,161.00));
153  corners.push_back(convertPt(809.00,161.00));
154  corners.push_back(convertPt(809.00,89.00));
155  corners.push_back(convertPt(832.00,89.00));
156  corners.push_back(convertPt(832.00,125.00));
157  corners.push_back(convertPt(832.00,137.00));
158  corners.push_back(convertPt(821.00,137.00));
159  corners.push_back(convertPt(821.00,161.00));
160  corners.push_back(convertPt(832.00,161.00));
161  corners.push_back(convertPt(832.00,197.00));
162  corners.push_back(convertPt(843.00,197.00));
163  corners.push_back(convertPt(843.00,221.00));
164  corners.push_back(convertPt(832.00,221.00));
165  corners.push_back(convertPt(832.00,233.00));
166  corners.push_back(convertPt(843.00,233.00));
167  corners.push_back(convertPt(843.00,244.00));
168  corners.push_back(convertPt(832.09,248.28));
169  corners.push_back(convertPt(832.00,257.00));
170  corners.push_back(convertPt(843.00,257.00));
171  corners.push_back(convertPt(843.00,269.00));
172  corners.push_back(convertPt(832.00,269.00));
173  corners.push_back(convertPt(832.00,281.00));
174  corners.push_back(convertPt(843.00,281.00));
175  corners.push_back(convertPt(843.00,292.00));
176  corners.push_back(convertPt(832.00,292.00));
177  corners.push_back(convertPt(832.00,484.00));
178  corners.push_back(convertPt(832.00,653.00));
179  corners.push_back(convertPt(832.00,676.00));
180  corners.push_back(convertPt(809.00,676.00));
181  corners.push_back(convertPt(809.00,688.00));
182  corners.push_back(convertPt(179.00,688.00));
183  corners.push_back(convertPt(179.00,269.00));
184 
185  contoursPointer = new Contours();
186  contoursPointer->resize(corners.size() - 1);
187  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
188  contoursPointer->begin(), makeLine);
189  _limitContours.insert(LimitContourEntry(1, contoursPointer));
190 
192  corners.clear();
193  corners.push_back(convertPt(179.00,269.00));
194  corners.push_back(convertPt(191.00,269.00));
195  corners.push_back(convertPt(191.00,257.00));
196  corners.push_back(convertPt(236.00,257.00));
197  corners.push_back(convertPt(236.00,245.00));
198  corners.push_back(convertPt(351.00,245.00));
199  corners.push_back(convertPt(351.00,209.00));
200  corners.push_back(convertPt(466.00,209.00));
201  corners.push_back(convertPt(466.00,185.00));
202  corners.push_back(convertPt(580.00,185.00));
203  corners.push_back(convertPt(580.00,161.00));
204  corners.push_back(convertPt(695.00,161.00));
205  corners.push_back(convertPt(695.00,149.00));
206  corners.push_back(convertPt(809.00,149.00));
207  corners.push_back(convertPt(809.00,89.00));
208  corners.push_back(convertPt(832.00,89.00));
209  corners.push_back(convertPt(832.00,125.00));
210  corners.push_back(convertPt(843.00,125.00));
211  corners.push_back(convertPt(843.00,484.00));
212  corners.push_back(convertPt(832.00,484.00));
213  corners.push_back(convertPt(832.00,653.00));
214  corners.push_back(convertPt(843.00,653.00));
215  corners.push_back(convertPt(843.00,676.00));
216  corners.push_back(convertPt(809.00,676.00));
217  corners.push_back(convertPt(809.00,688.00));
218  corners.push_back(convertPt(179.00,688.00));
219  corners.push_back(convertPt(179.00,269.00));
220 
221  contoursPointer = new Contours();
222  contoursPointer->resize(corners.size() - 1);
223  std::transform(corners.begin(), --corners.end(), ++corners.begin(),
224  contoursPointer->begin(), makeLine);
225  _limitContours.insert(LimitContourEntry(2, contoursPointer));
226 
227  }
LineSegment makeLine(const P2 &pt1, const P2 &pt2)
Factory function for lines.
std::pair< unsigned, Contours * > LimitContourEntry
P2 convertPt(double x, double y) const
Convert a point from pixel units to axis units.
Here is the call graph for this function:

Member Function Documentation

◆ convertPt()

◆ isWithinExclusionRegion()

bool Gambit::ColliderBit::OPALCharginoHadronicLimitAt208GeV::isWithinExclusionRegion ( double  x,
double  y,
double   
) const
virtual

Check to see if the point is within the exclusion region.

Note
Plots only go down to 75 GeV

Implements Gambit::ColliderBit::BaseLimitContainer.

Definition at line 13 of file OPALGauginoLimits.cpp.

14  {
16  return (y <= x and x <= 205. / 2. and x > 75.);
17  }

The documentation for this class was generated from the following files: