1 #ifndef RecoLocalTracker_SiPixelRecHits_interface_PixelCPEBase_h
2 #define RecoLocalTracker_SiPixelRecHits_interface_PixelCPEBase_h 1
17 #include <unordered_map>
136 LogDebug(
"PixelCPEBase") <<
" in PixelCPEBase:localParameters(all) - " << nRecHitsTotal_;
141 setTheClu(theDetParam, *theClusterParam);
148 auto tuple = std::make_tuple(lp, le, rqw);
150 LogDebug(
"PixelCPEBase") <<
" in PixelCPEBase:localParameters(all) - " << lp.
x() <<
" " << lp.
y();
162 LogDebug(
"PixelCPEBase") <<
" in PixelCPEBase:localParameters(on track) - " << nRecHitsTotal_;
167 setTheClu(theDetParam, *theClusterParam);
174 auto tuple = std::make_tuple(lp, le, rqw);
176 LogDebug(
"PixelCPEBase") <<
" in PixelCPEBase:localParameters(on track) - " << lp.
x() <<
" " << lp.
y();
187 virtual LocalError localError(DetParam
const& theDetParam, ClusterParam& theClusterParam)
const = 0;
211 mutable std::atomic<int> nRecHitsTotal_;
212 mutable std::atomic<int> nRecHitsUsedEdge_;
284 #endif // RecoLocalTracker_SiPixelRecHits_interface_PixelCPEBase_h
static constexpr float xEdgeYError_
const SiPixelLorentzAngle * lorentzAngleWidth_
virtual ~ClusterParam()=default
LocalVector driftDirection(DetParam &theDetParam, GlobalVector bfield) const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
const SiPixelCluster * theCluster
ClusterParam(const SiPixelCluster &cl)
static void fillPSetDescription(edm::ParameterSetDescription &desc)
bool doLorentzFromAlignment_
static constexpr float bothEdgeYError_
const PixelGeomDetUnit * theDet
GeomDetType::SubDetector thePart
static constexpr float yEdgeYError_
const RectangularPixelTopology * theRecTopol
bool useLAWidthFromConfig_
const PixelTopology * theTopol
bool LoadTemplatesFromDB_
void computeAnglesFromTrajectory(DetParam const &theDetParam, ClusterParam &theClusterParam, const LocalTrajectoryParameters <p) const
virtual LocalPoint localPosition(DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det) const override
void computeLorentzShifts(DetParam &) const
const SiPixelTemplateDBObject * templateDBobject_
const MagneticField * magfield_
void computeAnglesFromDetPosition(DetParam const &theDetParam, ClusterParam &theClusterParam) const
SiPixelRecHitQuality::QualWordType rawQualityWord(ClusterParam &theClusterParam) const
virtual std::unique_ptr< ClusterParam > createClusterParam(const SiPixelCluster &cl) const =0
Topology::LocalTrackPred loc_trk_pred
static constexpr float xEdgeXError_
std::vector< DetParam > DetParams
const TrackerTopology & ttopo_
const SiPixelLorentzAngle * lorentzAngle_
static constexpr float clusterSplitMaxError_
const SiPixelGenErrorDBObject * genErrorDBObject_
void setTheClu(DetParam const &, ClusterParam &theClusterParam) const
bool useLAOffsetFromConfig_
GloballyPositioned< double > Frame
Pixel cluster – collection of neighboring pixels above threshold.
const TrackerGeometry & geom_
unsigned int QualWordType
PixelCPEBase(edm::ParameterSet const &conf, const MagneticField *mag, const TrackerGeometry &geom, const TrackerTopology &ttopo, const SiPixelLorentzAngle *lorentzAngle, const SiPixelGenErrorDBObject *genErrorDBObject, const SiPixelTemplateDBObject *templateDBobject, const SiPixelLorentzAngle *lorentzAngleWidth, int flag=0)
ReturnType getParameters(const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters <p) const override
virtual LocalError localError(DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
LocalVector driftDirection
static constexpr float bothEdgeXError_
static constexpr float yEdgeXError_
std::tuple< LocalPoint, LocalError, SiPixelRecHitQuality::QualWordType > ReturnType
DetParam const & detParam(const GeomDetUnit &det) const