1 #ifndef PIXELHITMATCHER_H
2 #define PIXELHITMATCHER_H
38 #include "CLHEP/Vector/ThreeVector.h"
40 #include <unordered_map>
56 struct hash<std::pair<const GeomDet*,GlobalPoint> > {
57 std::size_t
operator()(
const std::pair<const GeomDet*,GlobalPoint>&
g)
const {
58 auto h1 = std::hash<unsigned long long>()((
unsigned long long)g.first);
59 unsigned long long k; memcpy(&k, &g.second,
sizeof(k));
60 auto h2 = std::hash<unsigned long long>()(k);
61 return h1 ^ (h2 << 1);
65 struct equal_to<std::pair<const GeomDet*,GlobalPoint> > :
public std::binary_function<std::pair<const GeomDet*,GlobalPoint>,std::pair<const GeomDet*,GlobalPoint>,bool> {
66 bool operator()(
const std::pair<const GeomDet*,GlobalPoint>&
a,
67 const std::pair<const GeomDet*,GlobalPoint>&
b)
const {
68 return (a.first == b.first) & (a.second == b.second);
172 typedef ROOT::Math::PositionVector3D<ROOT::Math::CylindricalEta3D<double> >
REPPoint;
175 (
float phi1min,
float phi1max,
177 float phi2minB,
float phi2maxB,
float phi2minF,
float phi2maxF,
178 float z2minB,
float z2maxB,
float r2minF,
float r2maxF,
179 float rMinI,
float rMaxI,
bool searchInTIDTEC ) ;
186 std::vector<SeedWithInfo>
192 std::vector<std::pair<RecHitWithDist,ConstRecHitPointer> >
202 void set1stLayer(
float dummyphi1min,
float dummyphi1max ) ;
205 void set2ndLayer(
float dummyphi2minB,
float dummyphi2maxB,
float dummyphi2minF,
float dummyphi2maxF ) ;
TransientTrackingRecHit::RecHitPointer RecHitPointer
TransientTrackingRecHit::RecHitPointer RecHitPointer
BarrelMeasurementEstimator meas2ndBLayer
RecHitWithInfo(ConstRecHitPointer rh, int subDet=0, float dRz=std::numeric_limits< float >::infinity(), float dPhi=std::numeric_limits< float >::infinity())
TransientTrackingRecHit::RecHitContainer RecHitContainer
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
BarrelMeasurementEstimator meas1stBLayer
void setEvent(const MeasurementTrackerEvent &event)
PropagatorWithMaterial * prop1stLayer
void setES(const MagneticField *, const MeasurementTracker *theMeasurementTracker, const TrackerGeometry *trackerGeometry)
std::vector< CLHEP::Hep3Vector > pred1Meas
unsigned char hitsMask() const
std::vector< ConstRecHitPointer > RecHitContainer
TransientTrackingRecHit::RecHitContainer RecHitContainer
SeedWithInfo(TrajectorySeed seed, unsigned char hitsMask, int subDet2, float dRz2, float dPhi2, int subDet1, float dRz1, float dPhi1)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
void set2ndLayer(float dummyphi2minB, float dummyphi2maxB, float dummyphi2minF, float dummyphi2maxF)
std::vector< GlobalPoint > hit_gp_map_
void set1stLayerZRange(float zmin1, float zmax1)
PixelHitMatcher(float phi1min, float phi1max, float phi2minB, float phi2maxB, float phi2minF, float phi2maxF, float z2minB, float z2maxB, float r2minF, float r2maxF, float rMinI, float rMaxI, bool searchInTIDTEC)
std::vector< TrajectorySeed > TrajectorySeedCollection
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
ConstRecHitPointer recHit() const
LayerMeasurements theLayerMeasurements
TransientTrackingRecHit::RecHitContainer RecHitContainer
const MagneticField * theMagField
const MeasurementTrackerEvent * theTrackerEvent
std::vector< CLHEP::Hep3Vector > predicted1Hits()
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
std::shared_ptr< TrackingRecHit const > RecHitPointer
void set1stLayer(float dummyphi1min, float dummyphi1max)
PixelMatchStartLayers startLayers
std::size_t operator()(const std::pair< const GeomDet *, GlobalPoint > &g) const
const GeometricSearchTracker * theGeometricSearchTracker
std::vector< CLHEP::Hep3Vector > pred2Meas
virtual ~PixelHitMatcher()
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
ForwardMeasurementEstimator meas2ndFLayer
bool operator()(const std::pair< const GeomDet *, GlobalPoint > &a, const std::pair< const GeomDet *, GlobalPoint > &b) const
PropagatorWithMaterial * prop2ndLayer
std::unordered_map< const GeomDet *, TrajectoryStateOnSurface > mapTsos_fast_
ForwardMeasurementEstimator meas1stFLayer
TransientTrackingRecHit::ConstRecHitPointer ConstRecHitPointer
TransientTrackingRecHit::RecHitPointer RecHitPointer
std::vector< SeedWithInfo > compatibleSeeds(TrajectorySeedCollection *seeds, const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, float charge)
const TrajectorySeed & seed() const
std::vector< CLHEP::Hep3Vector > predicted2Hits()
RecHitContainer hitsInTrack
std::vector< std::pair< RecHitWithDist, ConstRecHitPointer > > compatibleHits(const GlobalPoint &xmeas, const GlobalPoint &vprim, float energy, float charge, const TrackerTopology *tTopo, const NavigationSchool &navigationSchool)
void setUseRecoVertex(bool val)
ConstRecHitPointer recHit() const
std::unordered_map< std::pair< const GeomDet *, GlobalPoint >, TrajectoryStateOnSurface > mapTsos2_fast_
const TrackerGeometry * theTrackerGeometry
RecHitWithDist(ConstRecHitPointer rh, float &dphi)
const MeasurementTracker * theTracker