CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Types | Private Attributes
PixelCPEBase Class Referenceabstract

#include <PixelCPEBase.h>

Inheritance diagram for PixelCPEBase:
PixelClusterParameterEstimator ClusterParameterEstimator< SiPixelCluster > PixelCPEGeneric PixelCPETemplateReco

Classes

struct  Param
 

Public Member Functions

unsigned int clusterProbComputationFlag () const
 
void computeAnglesFromDetPosition (const SiPixelCluster &cl, const GeomDetUnit &det) const
 
bool hasBadPixels () const
 
bool hasFilledProb () const
 
bool isOnEdge () const
 
virtual LocalError localError (const SiPixelCluster &cl, const GeomDetUnit &det) const =0
 
LocalValues localParameters (const SiPixelCluster &cl, const GeomDetUnit &det) const
 
LocalValues localParameters (const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
 
LocalValues localParameters (const SiPixelCluster &cl, const GeomDetUnit &det, float alpha, float beta) const
 
virtual LocalPoint localPosition (const SiPixelCluster &cl, const GeomDetUnit &det) const
 
 PixelCPEBase (edm::ParameterSet const &conf, const MagneticField *mag=0, const SiPixelLorentzAngle *lorentzAngle=0, const SiPixelCPEGenericErrorParm *genErrorParm=0, const SiPixelTemplateDBObject *templateDBobject=0)
 
float probabilityQ () const
 
float probabilityX () const
 
float probabilityXY () const
 
float probabilityY () const
 
float qBin () const
 
SiPixelRecHitQuality::QualWordType rawQualityWord () const
 
void setMagField (const MagneticField *mag) const
 
bool spansTwoRocks () const
 
- Public Member Functions inherited from PixelClusterParameterEstimator
unsigned int clusterProbComputationFlag () const
 
 PixelClusterParameterEstimator ()
 
- Public Member Functions inherited from ClusterParameterEstimator< SiPixelCluster >
virtual void clearParameters () const
 
virtual void enterLocalParameters (unsigned int id, std::pair< int, int > &row_col, LocalValues pos_err_info) const
 
virtual void enterLocalParameters (uint32_t id, uint16_t firstStrip, LocalValues pos_err_info) const
 
virtual LocalValues localParameters (const SiPixelCluster &cluster, const GeomDetUnit &gd, const TrajectoryStateOnSurface &tsos) const
 
virtual VLocalValues localParametersV (const SiPixelCluster &cluster, const GeomDetUnit &gd) const
 
virtual VLocalValues localParametersV (const SiPixelCluster &cluster, const GeomDetUnit &gd, const TrajectoryStateOnSurface &tsos) const
 
virtual ~ClusterParameterEstimator ()
 

Protected Types

typedef GloballyPositioned
< double > 
Frame
 

Protected Member Functions

void computeAnglesFromTrajectory (const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
 
void computeLorentzShifts () const
 
LocalVector driftDirection (GlobalVector bfield) const
 
LocalVector driftDirection (LocalVector bfield) const
 
LocalVector driftDirectionCorrect (GlobalVector bfield) const
 
LocalVector const & getDrift () const
 
bool isFlipped () const
 
float lorentzShiftX () const
 
float lorentzShiftY () const
 
MeasurementError measurementError (const SiPixelCluster &, const GeomDetUnit &det) const
 
MeasurementPoint measurementPosition (const SiPixelCluster &cluster, const GeomDetUnit &det) const
 
Param const & param () const
 
void setTheDet (const GeomDetUnit &det, const SiPixelCluster &cluster) const
 
virtual float xpos (const SiPixelCluster &) const =0
 
virtual float ypos (const SiPixelCluster &) const =0
 

Protected Attributes

bool alpha2Order
 
float alpha_
 
float beta_
 
unsigned int clusterProbComputationFlag_
 
float cotalpha_
 
float cotbeta_
 
LocalVector driftDirection_
 
const SiPixelCPEGenericErrorParmgenErrorParm_
 
bool hasBadPixels_
 
bool hasFilledProb_
 
bool isOnEdge_
 
LocalTrajectoryParameters loc_traj_param_
 
Topology::LocalTrackPred loc_trk_pred_
 
const SiPixelLorentzAnglelorentzAngle_
 
double lorentzShiftInCmX_
 
double lorentzShiftInCmY_
 
double lorentzShiftX_
 
double lorentzShiftY_
 
const MagneticFieldmagfield_
 
int nRecHitsTotal_
 
int nRecHitsUsedEdge_
 
float probabilityQ_
 
float probabilityX_
 
float probabilityY_
 
float qBin_
 
bool spansTwoROCs_
 
const SiPixelTemplateDBObjecttemplateDBobject_
 
const PixelGeomDetUnittheDet
 
float theDetR
 
float theDetZ
 
float theLShiftX
 
float theLShiftY
 
float theNumOfCol
 
float theNumOfRow
 
Param const * theParam
 
GeomDetType::SubDetector thePart
 
float thePitchX
 
float thePitchY
 
const RectangularPixelTopology * theRecTopol
 
float theSign
 
float theThickness
 
const PixelTopologytheTopol
 
int theVerboseLevel
 
float trk_lp_x
 
float trk_lp_y
 
bool with_track_angle
 
- Protected Attributes inherited from PixelClusterParameterEstimator
unsigned int clusterProbComputationFlag_
 

Private Types

typedef std::unordered_map
< unsigned int, Param
Params
 

Private Attributes

Params m_Params
 

Additional Inherited Members

- Public Types inherited from ClusterParameterEstimator< SiPixelCluster >
typedef std::pair< LocalPoint,
LocalError
LocalValues
 
typedef std::vector< LocalValuesVLocalValues
 

Detailed Description

Definition at line 47 of file PixelCPEBase.h.

Member Typedef Documentation

typedef GloballyPositioned<double> PixelCPEBase::Frame
protected

Definition at line 179 of file PixelCPEBase.h.

typedef std::unordered_map< unsigned int, Param> PixelCPEBase::Params
private

Definition at line 326 of file PixelCPEBase.h.

Constructor & Destructor Documentation

PixelCPEBase::PixelCPEBase ( edm::ParameterSet const &  conf,
const MagneticField mag = 0,
const SiPixelLorentzAngle lorentzAngle = 0,
const SiPixelCPEGenericErrorParm genErrorParm = 0,
const SiPixelTemplateDBObject templateDBobject = 0 
)

Definition at line 45 of file PixelCPEBase.cc.

References alpha2Order, clusterProbComputationFlag_, genErrorParm_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), lorentzAngle_, mag(), magfield_, templateDBobject_, and theVerboseLevel.

47  : theDet(nullptr), theTopol(nullptr), theRecTopol(nullptr), theParam(nullptr), nRecHitsTotal_(0), nRecHitsUsedEdge_(0),
48  probabilityX_(0.0), probabilityY_(0.0),
49  probabilityQ_(0.0), qBin_(0),
50  isOnEdge_(false), hasBadPixels_(false),
51  spansTwoROCs_(false), hasFilledProb_(false),
52  loc_trk_pred_(0.0, 0.0, 0.0, 0.0)
53 {
54  //--- Lorentz angle tangent per Tesla
55 
56  lorentzAngle_ = lorentzAngle;
57 
58  //--- Algorithm's verbosity
60  conf.getUntrackedParameter<int>("VerboseLevel",0);
61 
62  //-- Magnetic Field
63  magfield_ = mag;
64 
65  //-- Error Parametriaztion from DB for CPE Generic
66  genErrorParm_ = genErrorParm;
67 
68  //-- Template Calibration Object from DB
69  templateDBobject_ = templateDBobject;
70 
71  //-- Switch on/off E.B
72  alpha2Order = conf.getParameter<bool>("Alpha2Order");
73 
74  //--- A flag that could be used to change the behavior of
75  //--- clusterProbability() in TSiPixelRecHit (the *transient* one).
76  //--- The problem is that the transient hits are made after the CPE runs
77  //--- and they don't get the access to the PSet, so we pass it via the
78  //--- CPE itself...
79  //
81  = (unsigned int) conf.getParameter<int>("ClusterProbComputationFlag");
82 
83 }
Topology::LocalTrackPred loc_trk_pred_
Definition: PixelCPEBase.h:276
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
unsigned int clusterProbComputationFlag_
Definition: PixelCPEBase.h:244
float probabilityQ_
Definition: PixelCPEBase.h:231
bool spansTwoROCs_
Definition: PixelCPEBase.h:235
float probabilityY_
Definition: PixelCPEBase.h:230
bool hasBadPixels_
Definition: PixelCPEBase.h:234
bool hasFilledProb_
Definition: PixelCPEBase.h:236
const SiPixelTemplateDBObject * templateDBobject_
Definition: PixelCPEBase.h:269
const MagneticField * magfield_
Definition: PixelCPEBase.h:263
tuple conf
Definition: dbtoconf.py:185
const RectangularPixelTopology * theRecTopol
Definition: PixelCPEBase.h:190
const SiPixelLorentzAngle * lorentzAngle_
Definition: PixelCPEBase.h:265
const PixelTopology * theTopol
Definition: PixelCPEBase.h:189
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
Param const * theParam
Definition: PixelCPEBase.h:192
float probabilityX_
Definition: PixelCPEBase.h:229
const SiPixelCPEGenericErrorParm * genErrorParm_
Definition: PixelCPEBase.h:267
int nRecHitsUsedEdge_
Definition: PixelCPEBase.h:223

Member Function Documentation

unsigned int PixelCPEBase::clusterProbComputationFlag ( ) const
inline

Definition at line 160 of file PixelCPEBase.h.

References clusterProbComputationFlag_.

161  {
163  }
unsigned int clusterProbComputationFlag_
Definition: PixelCPEBase.h:244
void PixelCPEBase::computeAnglesFromDetPosition ( const SiPixelCluster cl,
const GeomDetUnit det 
) const

Definition at line 337 of file PixelCPEBase.cc.

References alpha_, beta_, cotalpha_, cotbeta_, edm::hlt::Exception, Topology::localPosition(), mathSSE::sqrt(), GeomDet::surface(), theDet, theTopol, Surface::toGlobal(), with_track_angle, PV3DBase< T, PVType, FrameType >::x(), SiPixelCluster::x(), PV3DBase< T, PVType, FrameType >::y(), SiPixelCluster::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by localParameters().

339 {
340  //--- This is a new det unit, so cache it
341  theDet = dynamic_cast<const PixelGeomDetUnit*>( &det );
342  if ( ! theDet )
343  {
344  throw cms::Exception("PixelCPEBase::computeAngleFromDetPosition")
345  << " Wrong pointer to pixel detector !!!" << endl;
346 
347  }
348 
349  // get cluster center of gravity (of charge)
350  float xcenter = cl.x();
351  float ycenter = cl.y();
352 
353  // get the cluster position in local coordinates (cm)
354 
355  // ggiurgiu@jhu.edu 12/09/2010 : This function is called without track info, therefore there are no track
356  // angles to provide here. Call the default localPosition (without track info)
357  LocalPoint lp = theTopol->localPosition( MeasurementPoint(xcenter, ycenter) );
358 
359 
360  // get the cluster position in global coordinates (cm)
361  GlobalPoint gp = theDet->surface().toGlobal( lp );
362  float gp_mod = sqrt( gp.x()*gp.x() + gp.y()*gp.y() + gp.z()*gp.z() );
363 
364  // normalize
365  float gpx = gp.x()/gp_mod;
366  float gpy = gp.y()/gp_mod;
367  float gpz = gp.z()/gp_mod;
368 
369  // make a global vector out of the global point; this vector will point from the
370  // origin of the detector to the cluster
371  GlobalVector gv(gpx, gpy, gpz);
372 
373  // make local unit vector along local X axis
374  const Local3DVector lvx(1.0, 0.0, 0.0);
375 
376  // get the unit X vector in global coordinates/
377  GlobalVector gvx = theDet->surface().toGlobal( lvx );
378 
379  // make local unit vector along local Y axis
380  const Local3DVector lvy(0.0, 1.0, 0.0);
381 
382  // get the unit Y vector in global coordinates
383  GlobalVector gvy = theDet->surface().toGlobal( lvy );
384 
385  // make local unit vector along local Z axis
386  const Local3DVector lvz(0.0, 0.0, 1.0);
387 
388  // get the unit Z vector in global coordinates
389  GlobalVector gvz = theDet->surface().toGlobal( lvz );
390 
391  // calculate the components of gv (the unit vector pointing to the cluster)
392  // in the local coordinate system given by the basis {gvx, gvy, gvz}
393  // note that both gv and the basis {gvx, gvy, gvz} are given in global coordinates
394  float gv_dot_gvx = gv.x()*gvx.x() + gv.y()*gvx.y() + gv.z()*gvx.z();
395  float gv_dot_gvy = gv.x()*gvy.x() + gv.y()*gvy.y() + gv.z()*gvy.z();
396  float gv_dot_gvz = gv.x()*gvz.x() + gv.y()*gvz.y() + gv.z()*gvz.z();
397 
398 
399  /* all the above is equivalent to
400  const Local3DPoint origin = theDet->surface().toLocal(GlobalPoint(0,0,0)); // can be computed once...
401  auto gvx = lp.x()-origin.x();
402  auto gvy = lp.y()-origin.y();
403  auto gvz = -origin.z();
404  * normalization not required as only ratio used...
405  */
406 
407 
408  // calculate angles
409  alpha_ = atan2( gv_dot_gvz, gv_dot_gvx );
410  beta_ = atan2( gv_dot_gvz, gv_dot_gvy );
411 
412  cotalpha_ = gv_dot_gvx / gv_dot_gvz;
413  cotbeta_ = gv_dot_gvy / gv_dot_gvz;
414 
415  with_track_angle = false;
416 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
bool with_track_angle
Definition: PixelCPEBase.h:226
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
T y() const
Definition: PV3DBase.h:63
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
T sqrt(T t)
Definition: SSEVec.h:48
T z() const
Definition: PV3DBase.h:64
const PixelTopology * theTopol
Definition: PixelCPEBase.h:189
float y() const
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
T x() const
Definition: PV3DBase.h:62
float x() const
void PixelCPEBase::computeAnglesFromTrajectory ( const SiPixelCluster cl,
const GeomDetUnit det,
const LocalTrajectoryParameters ltp 
) const
protected

Definition at line 217 of file PixelCPEBase.cc.

References alpha_, beta_, cotalpha_, cotbeta_, loc_traj_param_, loc_trk_pred_, PV3DBase< T, PVType, FrameType >::mag(), LocalTrajectoryParameters::mixedFormatVector(), LocalTrajectoryParameters::momentum(), LocalTrajectoryParameters::position(), trk_lp_x, trk_lp_y, with_track_angle, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by localParameters().

220 {
221  loc_traj_param_ = ltp;
222 
223  LocalVector localDir = ltp.momentum()/ltp.momentum().mag();
224 
225  // &&& Or, maybe we need to move to the local frame ???
226  // LocalVector localDir( theDet->toLocal(theState.globalDirection()));
227  //thePart = theDet->type().part();
228 
229  float locx = localDir.x();
230  float locy = localDir.y();
231  float locz = localDir.z();
232 
233  /*
234  // Danek's definition
235  alpha_ = acos(locx/sqrt(locx*locx+locz*locz));
236  if ( isFlipped() ) // &&& check for FPIX !!!
237  alpha_ = PI - alpha_ ;
238  beta_ = acos(locy/sqrt(locy*locy+locz*locz));
239  */
240 
241  // &&& In the above, why not use atan2() ?
242  // ggiurgiu@fnal.gov, 01/24/09 : Use it now.
243  alpha_ = atan2( locz, locx );
244  beta_ = atan2( locz, locy );
245 
246  cotalpha_ = locx/locz;
247  cotbeta_ = locy/locz;
248 
249  LocalPoint trk_lp = ltp.position();
250  trk_lp_x = trk_lp.x();
251  trk_lp_y = trk_lp.y();
252 
253  with_track_angle = true;
254 
255 
256  // ggiurgiu@jhu.edu 12/09/2010 : needed to correct for bows/kinks
257  AlgebraicVector5 vec_trk_parameters = ltp.mixedFormatVector();
258  //loc_trk_pred = &Topology::LocalTrackPred( vec_trk_parameters );
259  loc_trk_pred_ = Topology::LocalTrackPred( vec_trk_parameters );
260 
261 }
Topology::LocalTrackPred loc_trk_pred_
Definition: PixelCPEBase.h:276
bool with_track_angle
Definition: PixelCPEBase.h:226
LocalPoint position() const
Local x and y position coordinates.
T y() const
Definition: PV3DBase.h:63
T mag() const
Definition: PV3DBase.h:67
T z() const
Definition: PV3DBase.h:64
LocalVector momentum() const
Momentum vector in the local frame.
ROOT::Math::SVector< double, 5 > AlgebraicVector5
LocalTrajectoryParameters loc_traj_param_
Definition: PixelCPEBase.h:278
AlgebraicVector5 mixedFormatVector() const
T x() const
Definition: PV3DBase.h:62
void PixelCPEBase::computeLorentzShifts ( ) const
protected

Definition at line 542 of file PixelCPEBase.cc.

References driftDirection_, getDrift(), LogDebug, lorentzShiftInCmX_, lorentzShiftInCmY_, lorentzShiftX_, lorentzShiftY_, thePitchX, thePitchY, theThickness, theVerboseLevel, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by PixelCPEGeneric::localPosition().

543 {
544  // this "has wrong sign..." so "corrected below
546 
547  // Max shift (at the other side of the sensor) in cm
549  // Express the shift in units of pitch,
551 
552  // Max shift (at the other side of the sensor) in cm
554  // Express the shift in units of pitch,
556 
557 
558  if ( theVerboseLevel > 9 ) {
559  LogDebug("PixelCPEBase") << " The drift direction in local coordinate is "
560  << driftDirection_ ;
561 
562  }
563 }
#define LogDebug(id)
double lorentzShiftX_
Definition: PixelCPEBase.h:253
float theThickness
Definition: PixelCPEBase.h:196
T y() const
Definition: PV3DBase.h:63
double lorentzShiftInCmY_
Definition: PixelCPEBase.h:256
LocalVector driftDirection_
Definition: PixelCPEBase.h:252
T z() const
Definition: PV3DBase.h:64
double lorentzShiftInCmX_
Definition: PixelCPEBase.h:255
LocalVector const & getDrift() const
Definition: PixelCPEBase.h:319
double lorentzShiftY_
Definition: PixelCPEBase.h:254
T x() const
Definition: PV3DBase.h:62
LocalVector PixelCPEBase::driftDirection ( GlobalVector  bfield) const
protected

Definition at line 497 of file PixelCPEBase.cc.

References GloballyPositioned< T >::position(), GloballyPositioned< T >::rotation(), GeomDet::surface(), and theDet.

Referenced by param().

497  {
498 
499  Frame detFrame(theDet->surface().position(), theDet->surface().rotation());
500  LocalVector Bfield = detFrame.toLocal(bfield);
501  return driftDirection(Bfield);
502 
503 }
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
LocalVector driftDirection(GlobalVector bfield) const
GloballyPositioned< double > Frame
Definition: PixelCPEBase.h:179
const RotationType & rotation() const
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
const PositionType & position() const
LocalVector PixelCPEBase::driftDirection ( LocalVector  bfield) const
protected

Definition at line 506 of file PixelCPEBase.cc.

References abs, alpha2Order, createTree::dd, edm::hlt::Exception, f, GeomDet::geographicalId(), SiPixelLorentzAngle::getLorentzAngle(), LogDebug, lorentzAngle_, DetId::rawId(), pileupReCalc_HLTpaths::scale, theDet, theVerboseLevel, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

506  {
507 
508  if(lorentzAngle_ == 0){
509  throw cms::Exception("invalidPointer") << "[PixelCPEBase::driftDirection] zero pointer to lorentz angle record ";
510  }
512  float alpha2;
513  if (alpha2Order) {
514  alpha2 = langle*langle;
515  } else {
516  alpha2 = 0.0;
517  }
518  // &&& dir_x should have a "-" and dir_y a "+"
519  // **********************************************************************
520  // Our convention is the following:
521  // +x is defined by the direction of the Lorentz drift!
522  // +z is defined by the direction of E field (so electrons always go into -z!)
523  // +y is defined by +x and +z, and it turns out to be always opposite to the +B field.
524  // **********************************************************************
525 
526  float dir_x = ( langle * Bfield.y() + alpha2* Bfield.z()* Bfield.x() );
527  float dir_y = -( langle * Bfield.x() - alpha2* Bfield.z()* Bfield.y() );
528  float dir_z = -( 1.f + alpha2* Bfield.z()*Bfield.z() );
529  double scale = 1.f/std::abs( dir_z ); // same as 1 + alpha2*Bfield.z()*Bfield.z()
530  LocalVector dd(dir_x*scale, dir_y*scale, -1.f ); // last is -1 !
531  if ( theVerboseLevel > 9 )
532  LogDebug("PixelCPEBase") << " The drift direction in local coordinate is "
533  << dd ;
534 
535  return dd;
536 }
#define LogDebug(id)
#define abs(x)
Definition: mlp_lapack.h:159
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
double f[11][100]
const SiPixelLorentzAngle * lorentzAngle_
Definition: PixelCPEBase.h:265
float getLorentzAngle(const uint32_t &) const
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
LocalVector PixelCPEBase::driftDirectionCorrect ( GlobalVector  bfield) const
protected
LocalVector const& PixelCPEBase::getDrift ( ) const
inlineprotected

Definition at line 319 of file PixelCPEBase.h.

References driftDirection_.

Referenced by computeLorentzShifts(), lorentzShiftX(), and lorentzShiftY().

319 {return driftDirection_ ;}
LocalVector driftDirection_
Definition: PixelCPEBase.h:252
bool PixelCPEBase::hasBadPixels ( ) const
inline

Definition at line 153 of file PixelCPEBase.h.

References hasBadPixels_.

153 { return hasBadPixels_ ; }
bool hasBadPixels_
Definition: PixelCPEBase.h:234
bool PixelCPEBase::hasFilledProb ( ) const
inline

Definition at line 155 of file PixelCPEBase.h.

References hasFilledProb_.

155 { return hasFilledProb_ ; }
bool hasFilledProb_
Definition: PixelCPEBase.h:236
bool PixelCPEBase::isFlipped ( ) const
protected

Definition at line 432 of file PixelCPEBase.cc.

References PV3DBase< T, PVType, FrameType >::perp2(), GeomDet::surface(), theDet, and Surface::toGlobal().

Referenced by setTheDet().

433 {
434  // Check the relative position of the local +/- z in global coordinates.
435  float tmp1 = theDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp2();
436  float tmp2 = theDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp2();
437  //cout << " 1: " << tmp1 << " 2: " << tmp2 << endl;
438  if ( tmp2<tmp1 ) return true;
439  else return false;
440 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
T perp2() const
Definition: PV3DBase.h:71
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
bool PixelCPEBase::isOnEdge ( ) const
inline

Definition at line 152 of file PixelCPEBase.h.

References isOnEdge_.

152 { return isOnEdge_ ; }
virtual LocalError PixelCPEBase::localError ( const SiPixelCluster cl,
const GeomDetUnit det 
) const
pure virtual
LocalValues PixelCPEBase::localParameters ( const SiPixelCluster cl,
const GeomDetUnit det 
) const
inlinevirtual

Implements ClusterParameterEstimator< SiPixelCluster >.

Definition at line 66 of file PixelCPEBase.h.

References computeAnglesFromDetPosition(), asciidump::le, localError(), localPosition(), nRecHitsTotal_, and setTheDet().

68  {
69  nRecHitsTotal_++ ;
70  setTheDet( det, cl );
72 
73  // localPosition( cl, det ) must be called before localError( cl, det ) !!!
74  LocalPoint lp = localPosition( cl, det );
75  LocalError le = localError( cl, det );
76 
77  return std::make_pair( lp, le );
78  }
void computeAnglesFromDetPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
virtual LocalError localError(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
void setTheDet(const GeomDetUnit &det, const SiPixelCluster &cluster) const
Definition: PixelCPEBase.cc:89
virtual LocalPoint localPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
LocalValues PixelCPEBase::localParameters ( const SiPixelCluster cl,
const GeomDetUnit det,
const LocalTrajectoryParameters ltp 
) const
inlinevirtual

Reimplemented from ClusterParameterEstimator< SiPixelCluster >.

Definition at line 83 of file PixelCPEBase.h.

References computeAnglesFromTrajectory(), asciidump::le, localError(), localPosition(), nRecHitsTotal_, and setTheDet().

86  {
87  nRecHitsTotal_++ ;
88  setTheDet( det, cl );
89  computeAnglesFromTrajectory(cl, det, ltp);
90 
91  // localPosition( cl, det ) must be called before localError( cl, det ) !!!
92  LocalPoint lp = localPosition( cl, det );
93  LocalError le = localError( cl, det );
94 
95  return std::make_pair( lp, le );
96  }
void computeAnglesFromTrajectory(const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
virtual LocalError localError(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
void setTheDet(const GeomDetUnit &det, const SiPixelCluster &cluster) const
Definition: PixelCPEBase.cc:89
virtual LocalPoint localPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
LocalValues PixelCPEBase::localParameters ( const SiPixelCluster cl,
const GeomDetUnit det,
float  alpha,
float  beta 
) const
inline

Definition at line 101 of file PixelCPEBase.h.

References alpha, alpha_, beta, beta_, cotalpha_, cotbeta_, asciidump::le, localError(), localPosition(), nRecHitsTotal_, Pi, setTheDet(), and funct::tan().

104  {
105  nRecHitsTotal_++ ;
106  alpha_ = alpha;
107  beta_ = beta;
108  double HalfPi = 0.5*TMath::Pi();
109  cotalpha_ = tan(HalfPi - alpha_);
110  cotbeta_ = tan(HalfPi - beta_ );
111  setTheDet( det, cl );
112 
113  // localPosition( cl, det ) must be called before localError( cl, det ) !!!
114  LocalPoint lp = localPosition( cl, det );
115  LocalError le = localError( cl, det );
116 
117  return std::make_pair( lp, le );
118  }
const double beta
const double Pi
float alpha
Definition: AMPTWrapper.h:95
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
virtual LocalError localError(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
void setTheDet(const GeomDetUnit &det, const SiPixelCluster &cluster) const
Definition: PixelCPEBase.cc:89
virtual LocalPoint localPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
LocalPoint PixelCPEBase::localPosition ( const SiPixelCluster cl,
const GeomDetUnit det 
) const
virtual

Reimplemented in PixelCPEGeneric, and PixelCPETemplateReco.

Definition at line 281 of file PixelCPEBase.cc.

References setTheDet(), theLShiftX, theLShiftY, thePitchX, thePitchY, xpos(), and ypos().

Referenced by localParameters(), measurementError(), and measurementPosition().

282  {
283  setTheDet( det, cluster );
284 
285  float lpx = xpos(cluster);
286  float lpy = ypos(cluster);
287  float lxshift = theLShiftX * thePitchX; // shift in cm
288  float lyshift = theLShiftY * thePitchY;
289  LocalPoint cdfsfs(lpx-lxshift, lpy-lyshift);
290  return cdfsfs;
291 }
float theLShiftY
Definition: PixelCPEBase.h:206
virtual float ypos(const SiPixelCluster &) const =0
void setTheDet(const GeomDetUnit &det, const SiPixelCluster &cluster) const
Definition: PixelCPEBase.cc:89
float theLShiftX
Definition: PixelCPEBase.h:205
virtual float xpos(const SiPixelCluster &) const =0
float PixelCPEBase::lorentzShiftX ( ) const
protected

Definition at line 458 of file PixelCPEBase.cc.

References dir, getDrift(), thePitchX, theThickness, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by setTheDet().

459 {
461 
462  // max shift in cm
463  float xdrift = dir.x()/dir.z() * theThickness;
464  // express the shift in units of pitch,
465  // divide by 2 to get the average correction
466  float lshift = xdrift / (thePitchX*2.);
467 
468  return lshift;
469 
470 
471 }
float theThickness
Definition: PixelCPEBase.h:196
T z() const
Definition: PV3DBase.h:64
LocalVector const & getDrift() const
Definition: PixelCPEBase.h:319
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:62
float PixelCPEBase::lorentzShiftY ( ) const
protected

Definition at line 473 of file PixelCPEBase.cc.

References dir, getDrift(), thePitchY, theThickness, PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by setTheDet().

474 {
475 
477 
478  float ydrift = dir.y()/dir.z() * theThickness;
479  float lshift = ydrift / (thePitchY * 2.f);
480  return lshift;
481 
482 
483 }
float theThickness
Definition: PixelCPEBase.h:196
T y() const
Definition: PV3DBase.h:63
T z() const
Definition: PV3DBase.h:64
LocalVector const & getDrift() const
Definition: PixelCPEBase.h:319
dbl *** dir
Definition: mlp_gen.cc:35
MeasurementError PixelCPEBase::measurementError ( const SiPixelCluster cluster,
const GeomDetUnit det 
) const
protected

Definition at line 318 of file PixelCPEBase.cc.

References LocalTrajectoryParameters::dxdz(), LocalTrajectoryParameters::dydz(), asciidump::le, loc_traj_param_, localError(), localPosition(), Topology::measurementError(), theTopol, and with_track_angle.

319 {
320  LocalPoint lp( localPosition(cluster, det) );
321  LocalError le( localError( cluster, det) );
322 
323  // ggiurgiu@jhu.edu 12/09/2010 : trk angles needed for bow/kink correction
324  if ( with_track_angle )
326  else
327  return theTopol->measurementError( lp, le );
328 }
bool with_track_angle
Definition: PixelCPEBase.h:226
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
virtual LocalError localError(const SiPixelCluster &cl, const GeomDetUnit &det) const =0
LocalTrajectoryParameters loc_traj_param_
Definition: PixelCPEBase.h:278
const PixelTopology * theTopol
Definition: PixelCPEBase.h:189
virtual LocalPoint localPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
MeasurementPoint PixelCPEBase::measurementPosition ( const SiPixelCluster cluster,
const GeomDetUnit det 
) const
protected

Definition at line 297 of file PixelCPEBase.cc.

References LocalTrajectoryParameters::dxdz(), LocalTrajectoryParameters::dydz(), loc_traj_param_, localPosition(), Topology::measurementPosition(), theTopol, and with_track_angle.

298  {
299 
300  LocalPoint lp = localPosition(cluster,det);
301 
302  // ggiurgiu@jhu.edu 12/09/2010 : trk angles needed for bow/kink correction
303 
304  if ( with_track_angle )
306  else
307  return theTopol->measurementPosition( lp );
308 
309 }
bool with_track_angle
Definition: PixelCPEBase.h:226
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
LocalTrajectoryParameters loc_traj_param_
Definition: PixelCPEBase.h:278
const PixelTopology * theTopol
Definition: PixelCPEBase.h:189
virtual LocalPoint localPosition(const SiPixelCluster &cl, const GeomDetUnit &det) const
PixelCPEBase::Param const & PixelCPEBase::param ( ) const
protected

Definition at line 442 of file PixelCPEBase.cc.

References PixelCPEBase::Param::bz, PixelCPEBase::Param::drift, driftDirection(), GeomDet::geographicalId(), MagneticField::inTesla(), m_Params, magfield_, AlCaHLTBitMon_ParallelJobs::p, GloballyPositioned< T >::position(), DetId::rawId(), GeomDet::surface(), theDet, GloballyPositioned< T >::toLocal(), unlikely, and PV3DBase< T, PVType, FrameType >::z().

Referenced by setTheDet().

442  {
444  if unlikely ( p.bz<-1.e10f ) {
446  p.drift = driftDirection(Bfield );
447  p.bz = Bfield.z();
448  }
449  return p;
450 }
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
#define unlikely(x)
Definition: Likely.h:21
LocalPoint toLocal(const GlobalPoint &gp) const
T z() const
Definition: PV3DBase.h:64
LocalVector driftDirection(GlobalVector bfield) const
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:72
const MagneticField * magfield_
Definition: PixelCPEBase.h:263
Params m_Params
Definition: PixelCPEBase.h:328
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
const PositionType & position() const
float PixelCPEBase::probabilityQ ( ) const
inline

Definition at line 150 of file PixelCPEBase.h.

References probabilityQ_.

150 { return probabilityQ_ ; }
float probabilityQ_
Definition: PixelCPEBase.h:231
float PixelCPEBase::probabilityX ( ) const
inline

Definition at line 139 of file PixelCPEBase.h.

References probabilityX_.

139 { return probabilityX_ ; }
float probabilityX_
Definition: PixelCPEBase.h:229
float PixelCPEBase::probabilityXY ( ) const
inline

Definition at line 141 of file PixelCPEBase.h.

References create_public_lumi_plots::log, probabilityX_, and probabilityY_.

Referenced by rawQualityWord().

141  {
142  if ( probabilityX_ !=0 && probabilityY_ !=0 )
143  {
145  }
146  else
147  return 0;
148  }
float probabilityY_
Definition: PixelCPEBase.h:230
float probabilityX_
Definition: PixelCPEBase.h:229
float PixelCPEBase::probabilityY ( ) const
inline

Definition at line 140 of file PixelCPEBase.h.

References probabilityY_.

140 { return probabilityY_ ; }
float probabilityY_
Definition: PixelCPEBase.h:230
float PixelCPEBase::qBin ( ) const
inline

Definition at line 151 of file PixelCPEBase.h.

References qBin_.

151 { return qBin_ ; }
SiPixelRecHitQuality::QualWordType PixelCPEBase::rawQualityWord ( ) const
virtual

A convenience method to fill a whole SiPixelRecHitQuality word in one shot. This way, we can keep the details of what is filled within the pixel code and not expose the Transient SiPixelRecHit to it as well. The name of this function is chosen to match the one in SiPixelRecHit.

Reimplemented from PixelClusterParameterEstimator.

Definition at line 572 of file PixelCPEBase.cc.

References hasBadPixels_, hasFilledProb_, isOnEdge_, probabilityQ_, probabilityXY(), qBin_, SiPixelRecHitQuality::Packing::setHasBadPixels(), SiPixelRecHitQuality::Packing::setHasFilledProb(), SiPixelRecHitQuality::Packing::setIsOnEdge(), SiPixelRecHitQuality::Packing::setProbabilityQ(), SiPixelRecHitQuality::Packing::setProbabilityXY(), SiPixelRecHitQuality::Packing::setQBin(), SiPixelRecHitQuality::Packing::setSpansTwoROCs(), spansTwoROCs_, and SiPixelRecHitQuality::thePacking.

Referenced by cms::SiPixelRecHitConverter::run().

573 {
575 
577  qualWord );
578 
580  qualWord );
581 
583  qualWord );
584 
586  qualWord );
587 
589  qualWord );
590 
592  qualWord );
593 
595  qualWord );
596 
597  return qualWord;
598 }
void setIsOnEdge(bool flag, QualWordType &qualWord)
void setProbabilityXY(float prob, QualWordType &qualWord)
void setSpansTwoROCs(bool flag, QualWordType &qualWord)
void setHasBadPixels(bool flag, QualWordType &qualWord)
float probabilityQ_
Definition: PixelCPEBase.h:231
bool spansTwoROCs_
Definition: PixelCPEBase.h:235
void setProbabilityQ(float prob, QualWordType &qualWord)
bool hasBadPixels_
Definition: PixelCPEBase.h:234
bool hasFilledProb_
Definition: PixelCPEBase.h:236
void setHasFilledProb(bool flag, QualWordType &qualWord)
float probabilityXY() const
Definition: PixelCPEBase.h:141
void setQBin(int qbin, QualWordType &qualWord)
void PixelCPEBase::setMagField ( const MagneticField mag) const
inline

Definition at line 127 of file PixelCPEBase.h.

References mag(), and magfield_.

127 { magfield_ = mag; }
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
const MagneticField * magfield_
Definition: PixelCPEBase.h:263
void PixelCPEBase::setTheDet ( const GeomDetUnit det,
const SiPixelCluster cluster 
) const
protected

Definition at line 89 of file PixelCPEBase.cc.

References Surface::bounds(), driftDirection_, edm::hlt::Exception, hasBadPixels_, i, isFlipped(), isOnEdge_, LogDebug, lorentzShiftX(), lorentzShiftY(), SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), param(), PV3DBase< T, PVType, FrameType >::perp(), SiPixelCluster::pixelADC(), GeomDetEnumerators::PixelBarrel, GeomDetEnumerators::PixelEndcap, GloballyPositioned< T >::position(), spansTwoROCs_, PixelGeomDetUnit::specificTopology(), GeomDetType::subDetector(), GeomDet::surface(), theDet, theDetR, theDetZ, theLShiftX, theLShiftY, theNumOfCol, theNumOfRow, theParam, thePart, thePitchX, thePitchY, theRecTopol, theSign, theThickness, theTopol, theVerboseLevel, Bounds::thickness(), PixelGeomDetUnit::type(), unlikely, and PV3DBase< T, PVType, FrameType >::z().

Referenced by PixelCPETemplateReco::localError(), PixelCPEGeneric::localError(), localParameters(), PixelCPETemplateReco::localPosition(), PixelCPEGeneric::localPosition(), and localPosition().

90 {
91  if ( theDet == &det )
92  return; // we have already seen this det unit
93 
94  //--- This is a new det unit, so cache it
95  theDet = dynamic_cast<const PixelGeomDetUnit*>( &det );
96 
97  if ( !theDet )
98  {
99  throw cms::Exception(" PixelCPEBase::setTheDet : ")
100  << " Wrong pointer to PixelGeomDetUnit object !!!";
101  }
102 
103  //--- theDet->type() returns a GeomDetType, which implements subDetector()
105  switch ( thePart )
106  {
108  // A barrel! A barrel!
109  break;
111  // A forward! A forward!
112  break;
113  default:
114  throw cms::Exception("PixelCPEBase::setTheDet :")
115  << "PixelCPEBase: A non-pixel detector type in here?" ;
116  }
117 
118  //--- The location in of this DetUnit in a cyllindrical coord system (R,Z)
119  //--- The call goes via BoundSurface, returned by theDet->surface(), but
120  //--- position() is implemented in GloballyPositioned<> template
121  //--- ( BoundSurface : Surface : GloballyPositioned<float> )
123  theDetZ = theDet->surface().position().z();
124  //--- Define parameters for chargewidth calculation
125 
126  //--- bounds() is implemented in BoundSurface itself.
128 
129  //--- Cache the topology.
130  // ggiurgiu@jhu.edu 12/09/2010 : no longer need to dynamyc cast to RectangularPixelTopology
131  //theTopol
132  //= dynamic_cast<const RectangularPixelTopology*>( & (theDet->specificTopology()) );
133 
134  auto topol = &(theDet->specificTopology());
135  if unlikely(topol!=theTopol) { // there is ONE topology!)
136  theTopol=topol;
137  auto const proxyT = dynamic_cast<const ProxyPixelTopology*>(theTopol);
138  if (proxyT) theRecTopol = dynamic_cast<const RectangularPixelTopology*>(&(proxyT->specificTopology()));
139  else theRecTopol = dynamic_cast<const RectangularPixelTopology*>(theTopol);
140  assert(theRecTopol);
141 
142  //---- The geometrical description of one module/plaquette
143  theNumOfRow = theRecTopol->nrows(); // rows in x
144  theNumOfCol = theRecTopol->ncolumns(); // cols in y
145  std::pair<float,float> pitchxy = theRecTopol->pitch();
146  thePitchX = pitchxy.first; // pitch along x
147  thePitchY = pitchxy.second; // pitch along y
148  }
149 
150  theSign = isFlipped() ? -1 : 1;
151 
152 
153  // will cache if not yest there (need some of the above)
154  theParam = &param();
155 
156  // this "has wrong sign..."
157  driftDirection_ = (*theParam).drift;
158 
159 
160  //--- The Lorentz shift.
162 
164 
165  // testing
167  //cout<<" lorentz shift "<<theLShiftX<<" "<<theLShiftY<<endl;
168  theLShiftY=0.;
169  }
170 
171  //--- Geometric Quality Information
172  int minInX,minInY,maxInX,maxInY=0;
173  minInX = cluster.minPixelRow();
174  minInY = cluster.minPixelCol();
175  maxInX = cluster.maxPixelRow();
176  maxInY = cluster.maxPixelCol();
177 
178  if(theRecTopol->isItEdgePixelInX(minInX) || theRecTopol->isItEdgePixelInX(maxInX) ||
179  theRecTopol->isItEdgePixelInY(minInY) || theRecTopol->isItEdgePixelInY(maxInY) ) {
180  isOnEdge_ = true;
181  }
182  else isOnEdge_ = false;
183 
184  // Bad Pixels have their charge set to 0 in the clusterizer
185  hasBadPixels_ = false;
186  for(unsigned int i=0; i<cluster.pixelADC().size(); ++i) {
187  if(cluster.pixelADC()[i] == 0) hasBadPixels_ = true;
188  }
189 
190  if(theRecTopol->containsBigPixelInX(minInX,maxInX) ||
191  theRecTopol->containsBigPixelInY(minInY,maxInY) ) {
192  spansTwoROCs_ = true;
193  }
194  else spansTwoROCs_ = false;
195 
196 
197  if (theVerboseLevel > 1)
198  {
199  LogDebug("PixelCPEBase") << "***** PIXEL LAYOUT *****"
200  << " thePart = " << thePart
201  << " theThickness = " << theThickness
202  << " thePitchX = " << thePitchX
203  << " thePitchY = " << thePitchY
204  // << " theOffsetX = " << theOffsetX
205  // << " theOffsetY = " << theOffsetY
206  << " theLShiftX = " << theLShiftX;
207  }
208 
209 }
#define LogDebug(id)
int i
Definition: DBlmapReader.cc:9
int minPixelCol() const
float theNumOfRow
Definition: PixelCPEBase.h:201
T perp() const
Definition: PV3DBase.h:72
float theLShiftY
Definition: PixelCPEBase.h:206
float theThickness
Definition: PixelCPEBase.h:196
const Bounds & bounds() const
Definition: Surface.h:128
bool spansTwoROCs_
Definition: PixelCPEBase.h:235
GeomDetType::SubDetector thePart
Definition: PixelCPEBase.h:194
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
float theNumOfCol
Definition: PixelCPEBase.h:202
int maxPixelRow() const
virtual float thickness() const =0
#define unlikely(x)
Definition: Likely.h:21
int minPixelRow() const
bool hasBadPixels_
Definition: PixelCPEBase.h:234
LocalVector driftDirection_
Definition: PixelCPEBase.h:252
bool isFlipped() const
Param const & param() const
T z() const
Definition: PV3DBase.h:64
const std::vector< uint16_t > & pixelADC() const
const RectangularPixelTopology * theRecTopol
Definition: PixelCPEBase.h:190
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const PixelTopology * theTopol
Definition: PixelCPEBase.h:189
int maxPixelCol() const
float lorentzShiftX() const
virtual const GeomDetType & type() const
const PixelGeomDetUnit * theDet
Definition: PixelCPEBase.h:185
Param const * theParam
Definition: PixelCPEBase.h:192
float theLShiftX
Definition: PixelCPEBase.h:205
float lorentzShiftY() const
const PositionType & position() const
SubDetector subDetector() const
Definition: GeomDetType.h:22
bool PixelCPEBase::spansTwoRocks ( ) const
inline

Definition at line 154 of file PixelCPEBase.h.

References spansTwoROCs_.

154 { return spansTwoROCs_ ; }
bool spansTwoROCs_
Definition: PixelCPEBase.h:235
virtual float PixelCPEBase::xpos ( const SiPixelCluster ) const
protectedpure virtual

Implemented in PixelCPEGeneric, and PixelCPETemplateReco.

Referenced by localPosition().

virtual float PixelCPEBase::ypos ( const SiPixelCluster ) const
protectedpure virtual

Implemented in PixelCPEGeneric, and PixelCPETemplateReco.

Referenced by localPosition().

Member Data Documentation

bool PixelCPEBase::alpha2Order
protected

Definition at line 271 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

float PixelCPEBase::alpha_
mutableprotected
float PixelCPEBase::beta_
mutableprotected
unsigned int PixelCPEBase::clusterProbComputationFlag_
protected

Definition at line 244 of file PixelCPEBase.h.

Referenced by clusterProbComputationFlag(), and PixelCPEBase().

float PixelCPEBase::cotalpha_
mutableprotected
float PixelCPEBase::cotbeta_
mutableprotected
LocalVector PixelCPEBase::driftDirection_
mutableprotected

Definition at line 252 of file PixelCPEBase.h.

Referenced by computeLorentzShifts(), getDrift(), and setTheDet().

const SiPixelCPEGenericErrorParm* PixelCPEBase::genErrorParm_
mutableprotected

Definition at line 267 of file PixelCPEBase.h.

Referenced by PixelCPEGeneric::localError(), and PixelCPEBase().

bool PixelCPEBase::hasBadPixels_
mutableprotected

Definition at line 234 of file PixelCPEBase.h.

Referenced by hasBadPixels(), rawQualityWord(), and setTheDet().

bool PixelCPEBase::hasFilledProb_
mutableprotected
bool PixelCPEBase::isOnEdge_
mutableprotected

Definition at line 233 of file PixelCPEBase.h.

Referenced by isOnEdge(), rawQualityWord(), and setTheDet().

LocalTrajectoryParameters PixelCPEBase::loc_traj_param_
mutableprotected
Topology::LocalTrackPred PixelCPEBase::loc_trk_pred_
mutableprotected
const SiPixelLorentzAngle* PixelCPEBase::lorentzAngle_
mutableprotected

Definition at line 265 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

double PixelCPEBase::lorentzShiftInCmX_
mutableprotected

Definition at line 255 of file PixelCPEBase.h.

Referenced by computeLorentzShifts(), and PixelCPEGeneric::localPosition().

double PixelCPEBase::lorentzShiftInCmY_
mutableprotected

Definition at line 256 of file PixelCPEBase.h.

Referenced by computeLorentzShifts(), and PixelCPEGeneric::localPosition().

double PixelCPEBase::lorentzShiftX_
mutableprotected

Definition at line 253 of file PixelCPEBase.h.

Referenced by computeLorentzShifts().

double PixelCPEBase::lorentzShiftY_
mutableprotected

Definition at line 254 of file PixelCPEBase.h.

Referenced by computeLorentzShifts().

Params PixelCPEBase::m_Params
mutableprivate

Definition at line 328 of file PixelCPEBase.h.

Referenced by param().

const MagneticField* PixelCPEBase::magfield_
mutableprotected

Definition at line 263 of file PixelCPEBase.h.

Referenced by param(), PixelCPEBase(), and setMagField().

int PixelCPEBase::nRecHitsTotal_
mutableprotected

Definition at line 222 of file PixelCPEBase.h.

Referenced by PixelCPEGeneric::generic_position_formula(), and localParameters().

int PixelCPEBase::nRecHitsUsedEdge_
mutableprotected

Definition at line 223 of file PixelCPEBase.h.

Referenced by PixelCPEGeneric::generic_position_formula().

float PixelCPEBase::probabilityQ_
mutableprotected
float PixelCPEBase::probabilityX_
mutableprotected
float PixelCPEBase::probabilityY_
mutableprotected
float PixelCPEBase::qBin_
mutableprotected
bool PixelCPEBase::spansTwoROCs_
mutableprotected

Definition at line 235 of file PixelCPEBase.h.

Referenced by rawQualityWord(), setTheDet(), and spansTwoRocks().

const SiPixelTemplateDBObject* PixelCPEBase::templateDBobject_
mutableprotected
const PixelGeomDetUnit* PixelCPEBase::theDet
mutableprotected
float PixelCPEBase::theDetR
mutableprotected

Definition at line 204 of file PixelCPEBase.h.

Referenced by setTheDet().

float PixelCPEBase::theDetZ
mutableprotected

Definition at line 203 of file PixelCPEBase.h.

Referenced by setTheDet().

float PixelCPEBase::theLShiftX
mutableprotected

Definition at line 205 of file PixelCPEBase.h.

Referenced by localPosition(), and setTheDet().

float PixelCPEBase::theLShiftY
mutableprotected

Definition at line 206 of file PixelCPEBase.h.

Referenced by localPosition(), and setTheDet().

float PixelCPEBase::theNumOfCol
mutableprotected

Definition at line 202 of file PixelCPEBase.h.

Referenced by setTheDet().

float PixelCPEBase::theNumOfRow
mutableprotected

Definition at line 201 of file PixelCPEBase.h.

Referenced by setTheDet().

Param const* PixelCPEBase::theParam
mutableprotected

Definition at line 192 of file PixelCPEBase.h.

Referenced by setTheDet().

GeomDetType::SubDetector PixelCPEBase::thePart
mutableprotected
float PixelCPEBase::thePitchX
mutableprotected
float PixelCPEBase::thePitchY
mutableprotected
const RectangularPixelTopology* PixelCPEBase::theRecTopol
mutableprotected
float PixelCPEBase::theSign
mutableprotected

Definition at line 207 of file PixelCPEBase.h.

Referenced by setTheDet().

float PixelCPEBase::theThickness
mutableprotected
const PixelTopology* PixelCPEBase::theTopol
mutableprotected
int PixelCPEBase::theVerboseLevel
protected
float PixelCPEBase::trk_lp_x
mutableprotected
float PixelCPEBase::trk_lp_y
mutableprotected
bool PixelCPEBase::with_track_angle
mutableprotected