50 temp_all_hits.clear();
55 for (
const auto & it_rh : ds_rh2.data){
56 CLHEP::Hep3Vector localV(it_rh.getPoint().x(),it_rh.getPoint().y(),it_rh.getPoint().z() );
59 localError[0][0] = it_rh.getError().xx();
60 localError[0][1] = it_rh.getError().xy();
61 localError[0][2] = 0.;
62 localError[1][0] = it_rh.getError().xy();
63 localError[1][1] = it_rh.getError().yy();
64 localError[1][2] = 0.;
65 localError[2][0] = 0.;
66 localError[2][1] = 0.;
67 localError[2][2] = 0.;
72 theRotationMatrix.GetComponents(theRotationTMatrix(0, 0), theRotationTMatrix(0, 1), theRotationTMatrix(0, 2),
73 theRotationTMatrix(1, 0), theRotationTMatrix(1, 1), theRotationTMatrix(1, 2),
74 theRotationTMatrix(2, 0), theRotationTMatrix(2, 1), theRotationTMatrix(2, 2));
77 PointInPlane thePointAndRecHit = {globalV,globalError,it_rh,myid};
78 temp_all_hits.push_back(thePointAndRecHit);
83 Road::iterator it_gh1 = temp_all_hits.begin();
84 Road::iterator it_gh2;
90 while( it_gh1 != temp_all_hits.end() && temp_all_hits.size() >=
minRoadSize_){
95 CLHEP::Hep3Vector currPoint = it_gh1->globalPoint;
98 while( it_gh2 != temp_all_hits.end()){
99 bool same_pot =
false;
102 CLHEP::Hep3Vector subtraction = currPoint - it_gh2->globalPoint;
105 temp_road.push_back(*it_gh2);
106 temp_all_hits.erase(it_gh2);
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
DDRotationMatrix rotation() const
geometry information
unsigned int maxRoadSize_
std::vector< PointInPlane > Road
const DetGeomDesc * getSensor(unsigned int id) const
returns geometry of a detector performs necessary checks, returns NULL if fails
const CTPPSGeometry * geometry_
const edm::DetSetVector< CTPPSPixelRecHit > * hitVector_
RPixRoadFinder(const edm::ParameterSet ¶m)
CTPPSDetId getRPId() const
void findPattern() override
CLHEP::Hep3Vector localToGlobal(const DetGeomDesc *, const CLHEP::Hep3Vector &) const
std::vector< Road > patternVector_
unsigned int minRoadSize_
~RPixRoadFinder() override
ROOT::Math::Rotation3D DDRotationMatrix
A DDRotationMatrix is currently implemented with a ROOT Rotation3D.
ParameterSet const & parameterSet(Provenance const &provenance)
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepStd< double, 3, 3 > > AlgebraicMatrix33