22 #define CORRECT_FOR_BIG_PIXELS
41 constexpr float HALF_PI = 1.57079632679489656;
52 probabilityX_(0.0), probabilityY_(0.0),
53 probabilityQ_(0.0), qBin_(0),
56 loc_trk_pred_(0.0, 0.0, 0.0, 0.0)
85 = (
unsigned int) conf.
getParameter<
int>(
"ClusterProbComputationFlag");
102 <<
" Wrong pointer to PixelGeomDetUnit object !!!";
120 <<
"PixelCPEBase: A non-pixel detector type in here?" ;
143 auto const proxyT =
dynamic_cast<const ProxyPixelTopology*
>(
theTopol);
144 if (proxyT)
theRecTopol =
dynamic_cast<const RectangularPixelTopology*
>(&(proxyT->specificTopology()));
151 std::pair<float,float> pitchxy =
theRecTopol->pitch();
177 LogDebug(
"PixelCPEBase") <<
"***** PIXEL LAYOUT *****"
189 int minInX,minInY,maxInX,maxInY=0;
200 for(
unsigned int i=0;
i<cluster.
pixelADC().size(); ++
i) {
223 float locx = localDir.
x();
224 float locy = localDir.
y();
225 float locz = localDir.
z();
383 if ( tmp2<tmp1 )
return true;
426 float lshift = ydrift / (
thePitchY * 2.f);
468 float dir_x = ( langle * Bfield.
y() + alpha2* Bfield.
z()* Bfield.
x() );
469 float dir_y = -( langle * Bfield.
x() - alpha2* Bfield.
z()* Bfield.
y() );
470 float dir_z = -( 1.f + alpha2* Bfield.
z()*Bfield.
z() );
474 LogDebug(
"PixelCPEBase") <<
" The drift direction in local coordinate is " <<
dd ;
498 LogDebug(
"PixelCPEBase") <<
" The drift direction in local coordinate is "
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
T getParameter(std::string const &) const
void setProbabilityXY(float prob, QualWordType &qualWord) const
T getUntrackedParameter(std::string const &, T const &) const
Topology::LocalTrackPred loc_trk_pred_
static const Packing thePacking
PixelCPEBase(edm::ParameterSet const &conf, const MagneticField *mag=0, const SiPixelLorentzAngle *lorentzAngle=0, const SiPixelCPEGenericErrorParm *genErrorParm=0, const SiPixelTemplateDBObject *templateDBobject=0)
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
void computeAnglesFromDetPosition(const SiPixelCluster &cl) const
LocalPoint position() const
Local x and y position coordinates.
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Global3DPoint GlobalPoint
unsigned int clusterProbComputationFlag_
SiPixelRecHitQuality::QualWordType rawQualityWord() const
const Bounds & bounds() const
GeomDetType::SubDetector thePart
const Plane & surface() const
The nominal surface of the GeomDet.
uint32_t rawId() const
get the raw id
virtual float thickness() const =0
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
LocalVector driftDirection_
void computeLorentzShifts() const
Param const & param() const
LocalPoint toLocal(const GlobalPoint &gp) const
LocalVector driftDirection(GlobalVector bfield) const
Abs< T >::type abs(const T &t)
const SiPixelTemplateDBObject * templateDBobject_
void setHasBadPixels(bool flag, QualWordType &qualWord) const
DetId geographicalId() const
The label of this GeomDet.
const MagneticField * magfield_
LocalVector momentum() const
Momentum vector in the local frame.
void setProbabilityQ(float prob, QualWordType &qualWord) const
void setSpansTwoROCs(bool flag, QualWordType &qualWord) const
const std::vector< uint16_t > & pixelADC() const
Point3DBase< float, LocalTag > Local3DPoint
void setIsOnEdge(bool flag, QualWordType &qualWord) const
const RectangularPixelTopology * theRecTopol
ROOT::Math::SVector< double, 5 > AlgebraicVector5
LocalTrajectoryParameters loc_traj_param_
const SiPixelLorentzAngle * lorentzAngle_
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const PixelTopology * theTopol
AlgebraicVector5 mixedFormatVector() const
void setTheDet(const GeomDetUnit &det, const SiPixelCluster &cluster) const
float lorentzShiftX() const
Pixel cluster – collection of neighboring pixels above threshold.
LocalVector const & getDrift() const
float probabilityXY() const
float getLorentzAngle(const uint32_t &) const
const RotationType & rotation() const
virtual const GeomDetType & type() const
volatile std::atomic< bool > shutdown_flag false
const PixelGeomDetUnit * theDet
void setHasFilledProb(bool flag, QualWordType &qualWord) const
float lorentzShiftY() const
const PositionType & position() const
void setQBin(int qbin, QualWordType &qualWord) const
SubDetector subDetector() const
void computeAnglesFromTrajectory(const SiPixelCluster &cl, const LocalTrajectoryParameters <p) const
const SiPixelCPEGenericErrorParm * genErrorParm_