File indexing completed on 2023-10-25 10:02:59
0001 #include "SimpleTECWedge.h"
0002 #include "ForwardDiskSectorBuilderFromDet.h"
0003 #include "TrackingTools/DetLayers/interface/DetLayerException.h"
0004 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0005
0006 using namespace std;
0007
0008 typedef GeometricSearchDet::DetWithState DetWithState;
0009
0010 SimpleTECWedge::SimpleTECWedge(const GeomDet* theInputDet) : theDet(theInputDet) {
0011 theDets.push_back(theDet);
0012
0013 theDiskSector = ForwardDiskSectorBuilderFromDet()(theDets);
0014
0015 LogDebug("TkDetLayers") << "DEBUG INFO for CompositeTECWedge"
0016 << "\n"
0017 << "TECWedge z, perp,innerRadius,outerR: " << this->position().z() << " , "
0018 << this->position().perp() << " , " << theDiskSector->innerRadius() << " , "
0019 << theDiskSector->outerRadius();
0020 }
0021
0022 SimpleTECWedge::~SimpleTECWedge() {}
0023
0024 const vector<const GeometricSearchDet*>& SimpleTECWedge::components() const {
0025 throw DetLayerException("SimpleTECWedge doesn't have GeometricSearchDet components");
0026 }
0027
0028 pair<bool, TrajectoryStateOnSurface> SimpleTECWedge::compatible(const TrajectoryStateOnSurface& tsos,
0029 const Propagator& prop,
0030 const MeasurementEstimator& est) const {
0031 return GeomDetCompatibilityChecker::isCompatible(theDet, tsos, prop, est);
0032 }
0033
0034 void SimpleTECWedge::groupedCompatibleDetsV(const TrajectoryStateOnSurface& tsos,
0035 const Propagator& prop,
0036 const MeasurementEstimator& est,
0037 std::vector<DetGroup>& result) const {
0038 pair<bool, TrajectoryStateOnSurface> compat = this->compatible(tsos, prop, est);
0039
0040 if (compat.first) {
0041 result.push_back(DetGroup(0, 1));
0042 DetGroupElement ge(theDet, compat.second);
0043 result.front().push_back(ge);
0044 }
0045 }