Back to home page

Project CMSSW displayed by LXR

 
 

    


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 }