33 throw cms::Exception(
"ConfigurationProblem") <<
"GlobalTrackingGeomtry is not set\n";
35 throw cms::Exception(
"ConfigurationProblem") <<
"CSCBadChambers is not set\n";
41 throw cms::Exception(
"ConfigurationProblem") <<
"GlobalTrackingGeomtry is not set\n";
44 throw cms::Exception(
"NoGeometry") <<
"Cannot find GeomDet for DetID: " <<
id.rawId() <<
"\n";
56 throw cms::Exception(
"ConfigurationProblem") <<
"GlobalTrackingGeomtry is not set\n";
57 if (subDectorIndex != 0)
59 <<
"Muon sub-dectors are all handle as one sub-system, but subDetectorIndex is not zero.\n";
65 for (
auto it = geomDetsCSC.begin(); it != geomDetsCSC.end(); ++it)
66 if (
auto csc = dynamic_cast<const CSCChamber*>(*it)) {
69 validIds.push_back(
csc->id());
76 for (
auto it = geomDetsDT.begin(); it != geomDetsDT.end(); ++it)
77 if (
auto dt = dynamic_cast<const DTChamber*>(*it))
78 validIds.push_back(
dt->id());
84 for (
auto it = geomDetsRPC.begin(); it != geomDetsRPC.end(); ++it)
85 if (
auto rpc = dynamic_cast<const RPCChamber*>(*it)) {
86 std::vector<const RPCRoll*> rolls = (
rpc->rolls());
87 for (std::vector<const RPCRoll*>::iterator
r = rolls.begin();
r != rolls.end(); ++
r)
88 validIds.push_back((*r)->id().rawId());
96 for (
auto it = geomDetsGEM.begin(); it != geomDetsGEM.end(); ++it) {
97 if (
auto gem = dynamic_cast<const GEMSuperChamber*>(*it)) {
98 validIds.push_back(gem->id());
107 for (
auto it = geomDetsME0.begin(); it != geomDetsME0.end(); ++it) {
108 if (
auto me0 = dynamic_cast<const ME0Chamber*>(*it)) {
109 validIds.push_back(me0->id());
117 throw cms::Exception(
"ConfigurationProblem") <<
"GlobalTrackingGeomtry is not set\n";
123 const DetId&
id, std::vector<GlobalPoint>& points)
const {
157 return std::pair<const_iterator, const_iterator>(points.begin(), points.end());
const CSCBadChambers * cscbadchambers_
virtual float length() const =0
virtual bool inside(const Local3DPoint &) const =0
Determine if the point is inside the bounds.
const GeomDet * getGeomDet(const DetId &id) const override
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
std::pair< const_iterator, const_iterator > getDetIdPoints(const DetId &id, std::vector< GlobalPoint > &points) const override
Global3DPoint GlobalPoint
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
const Bounds & bounds() const
const GeomDet * idToDet(DetId) const override
const Plane & surface() const
The nominal surface of the GeomDet.
bool insideElement(const GlobalPoint &point, const DetId &id) const override
bool isInBadChamber(IndexType ichamber) const
Is the chamber with index 'ichamber' flagged as bad?
virtual float thickness() const =0
GlobalPoint getPosition(const DetId &id) const override
const TrackingGeometry * slaveGeometry(DetId id) const
Return the pointer to the actual geometry for a given DetId.
virtual void check_setup() const
virtual const DetContainer & dets() const =0
Returm a vector of all GeomDet (including all GeomDetUnits)
static int position[264][3]
const GlobalTrackingGeometry * geometry_
void check_setup() const override
void getValidDetIds(unsigned int, std::vector< DetId > &) const override
virtual float width() const =0
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point