CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions
PixelCPEBase Class Referenceabstract

#include <PixelCPEBase.h>

Inheritance diagram for PixelCPEBase:
PixelClusterParameterEstimator PixelCPEClusterRepair PixelCPEFast PixelCPEGeneric PixelCPETemplateReco

Classes

struct  ClusterParam
 
struct  DetParam
 

Public Member Functions

ReturnType getParameters (const SiPixelCluster &cl, const GeomDetUnit &det) const override
 
ReturnType getParameters (const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const override
 
 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)
 
- Public Member Functions inherited from PixelClusterParameterEstimator
unsigned int clusterProbComputationFlag () const
 
virtual ReturnType getParameters (const SiPixelCluster &cl, const GeomDetUnit &det, const TrajectoryStateOnSurface &tsos) const
 
virtual VLocalValues localParametersV (const SiPixelCluster &cluster, const GeomDetUnit &gd) const
 
virtual VLocalValues localParametersV (const SiPixelCluster &cluster, const GeomDetUnit &gd, TrajectoryStateOnSurface &tsos) const
 
 PixelClusterParameterEstimator ()
 
virtual ~PixelClusterParameterEstimator ()
 

Static Public Member Functions

static void fillPSetDescription (edm::ParameterSetDescription &desc)
 

Protected Types

using DetParams = std::vector< DetParam >
 
typedef GloballyPositioned< double > Frame
 

Protected Member Functions

void computeAnglesFromDetPosition (DetParam const &theDetParam, ClusterParam &theClusterParam) const
 
void computeAnglesFromTrajectory (DetParam const &theDetParam, ClusterParam &theClusterParam, const LocalTrajectoryParameters &ltp) const
 
void computeLorentzShifts (DetParam &) const
 
DetParam const & detParam (const GeomDetUnit &det) const
 
LocalVector driftDirection (DetParam &theDetParam, GlobalVector bfield) const
 
LocalVector driftDirection (DetParam &theDetParam, LocalVector bfield) const
 
void setTheClu (DetParam const &, ClusterParam &theClusterParam) const
 

Protected Attributes

bool alpha2Order
 
bool doLorentzFromAlignment_
 
const SiPixelGenErrorDBObjectgenErrorDBObject_
 
const TrackerGeometrygeom_
 
float lAOffset_
 
float lAWidthBPix_
 
float lAWidthFPix_
 
bool LoadTemplatesFromDB_
 
const SiPixelLorentzAnglelorentzAngle_
 
const SiPixelLorentzAnglelorentzAngleWidth_
 
DetParams m_DetParams = DetParams(1440)
 
const MagneticFieldmagfield_
 
const SiPixelTemplateDBObjecttemplateDBobject_
 
int theFlag_
 
int theVerboseLevel
 
const TrackerTopologyttopo_
 
bool useLAFromDB_
 
bool useLAOffsetFromConfig_
 
bool useLAWidthFromConfig_
 
bool useLAWidthFromDB_
 
- Protected Attributes inherited from PixelClusterParameterEstimator
unsigned int clusterProbComputationFlag_
 

Static Protected Attributes

static constexpr float bothEdgeXError_ = 31.0f
 
static constexpr float bothEdgeYError_ = 90.0f
 
static constexpr float clusterSplitMaxError_ = 7777.7f
 
static constexpr float xEdgeXError_ = 23.0f
 
static constexpr float xEdgeYError_ = 39.0f
 
static constexpr float yEdgeXError_ = 24.0f
 
static constexpr float yEdgeYError_ = 96.0f
 

Private Member Functions

virtual std::unique_ptr< ClusterParamcreateClusterParam (const SiPixelCluster &cl) const =0
 
void fillDetParams ()
 
virtual LocalError localError (DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
 
virtual LocalPoint localPosition (DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
 
SiPixelRecHitQuality::QualWordType rawQualityWord (ClusterParam &theClusterParam) const
 

Additional Inherited Members

- Public Types inherited from PixelClusterParameterEstimator
typedef std::pair< LocalPoint, LocalErrorLocalValues
 
using ReturnType = std::tuple< LocalPoint, LocalError, SiPixelRecHitQuality::QualWordType >
 
typedef std::vector< LocalValuesVLocalValues
 

Detailed Description

Definition at line 43 of file PixelCPEBase.h.

Member Typedef Documentation

◆ DetParams

using PixelCPEBase::DetParams = std::vector<DetParam>
protected

Definition at line 281 of file PixelCPEBase.h.

◆ Frame

typedef GloballyPositioned<double> PixelCPEBase::Frame
protected

Definition at line 203 of file PixelCPEBase.h.

Constructor & Destructor Documentation

◆ PixelCPEBase()

PixelCPEBase::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 
)

Definition at line 30 of file PixelCPEBase.cc.

40  : useLAOffsetFromConfig_(false),
41  useLAWidthFromConfig_(false),
42  useLAWidthFromDB_(false),
43  theFlag_(flag),
44  magfield_(mag),
45  geom_(geom),
46  ttopo_(ttopo) {
47 #ifdef EDM_ML_DEBUG
48  nRecHitsTotal_ = 0;
49  nRecHitsUsedEdge_ = 0,
50 #endif
51 
52  //--- Lorentz angle tangent per Tesla
53  lorentzAngle_ = lorentzAngle;
54  lorentzAngleWidth_ = lorentzAngleWidth;
55 
56  //-- GenError Calibration Object (different from SiPixelCPEGenericErrorParm) from DB
57  genErrorDBObject_ = genErrorDBObject;
58 
59  //-- Template Calibration Object from DB
60  if (theFlag_ != 0)
61  templateDBobject_ = templateDBobject; // flag to check if it is generic or templates
62 
63  // Configurables
64  // For both templates & generic
65 
66  // Read templates and/or generic errors from DB
67  LoadTemplatesFromDB_ = conf.getParameter<bool>("LoadTemplatesFromDB");
68 
69  //--- Algorithm's verbosity
70  theVerboseLevel = conf.getUntrackedParameter<int>("VerboseLevel", 0);
71 
72  //-- Switch on/off E.B
73  alpha2Order = conf.getParameter<bool>("Alpha2Order");
74 
75  //--- A flag that could be used to change the behavior of
76  //--- clusterProbability() in TSiPixelRecHit (the *transient* one).
77  //--- The problem is that the transient hits are made after the CPE runs
78  //--- and they don't get the access to the PSet, so we pass it via the
79  //--- CPE itself...
80  //
81  clusterProbComputationFlag_ = (unsigned int)conf.getParameter<int>("ClusterProbComputationFlag");
82 
83  // This LA related parameters are only relevant for the Generic algo
84  // They still have to be used in Base since the LA computation is in Base
85 
86  // Use LA-width from DB.
87  // If both (this and from config) are false LA-width is calcuated from LA-offset
88  useLAWidthFromDB_ = conf.getParameter<bool>("useLAWidthFromDB");
89 
90  // Use Alignment LA-offset in generic
91  // (Experimental; leave commented out)
92  //useLAAlignmentOffsets_ = conf.existsAs<bool>("useLAAlignmentOffsets")?
93  //conf.getParameter<bool>("useLAAlignmentOffsets"):false;
94 
95  // Used only for testing
96  lAOffset_ = conf.getParameter<double>("lAOffset");
97  lAWidthBPix_ = conf.getParameter<double>("lAWidthBPix");
98  lAWidthFPix_ = conf.getParameter<double>("lAWidthFPix");
99 
100  // Use LA-offset from config, for testing only
101  if (lAOffset_ > 0.0)
102  useLAOffsetFromConfig_ = true;
103  // Use LA-width from config, split into fpix & bpix, for testing only
104  if (lAWidthBPix_ > 0.0 || lAWidthFPix_ > 0.0)
105  useLAWidthFromConfig_ = true;
106 
107  // For Templates only
108  // Compute the Lorentz shifts for this detector element for templates (from Alignment)
109  doLorentzFromAlignment_ = conf.getParameter<bool>("doLorentzFromAlignment");
110  useLAFromDB_ = conf.getParameter<bool>("useLAFromDB");
111 
112  LogDebug("PixelCPEBase") << " LA constants - " << lAOffset_ << " " << lAWidthBPix_ << " " << lAWidthFPix_
113  << endl; //dk
114 
115  fillDetParams();
116 }

References alpha2Order, PixelClusterParameterEstimator::clusterProbComputationFlag_, doLorentzFromAlignment_, fillDetParams(), genErrorDBObject_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), createfilelist::int, lAOffset_, lAWidthBPix_, lAWidthFPix_, LoadTemplatesFromDB_, LogDebug, lorentzAngle_, lorentzAngleWidth_, templateDBobject_, theFlag_, theVerboseLevel, useLAFromDB_, useLAOffsetFromConfig_, useLAWidthFromConfig_, and useLAWidthFromDB_.

Member Function Documentation

◆ computeAnglesFromDetPosition()

void PixelCPEBase::computeAnglesFromDetPosition ( DetParam const &  theDetParam,
ClusterParam theClusterParam 
) const
protected

Definition at line 291 of file PixelCPEBase.cc.

291  {
292  LocalPoint lp = theDetParam.theTopol->localPosition(
293  MeasurementPoint(theClusterParam.theCluster->x(), theClusterParam.theCluster->y()));
294  auto gvx = lp.x() - theDetParam.theOrigin.x();
295  auto gvy = lp.y() - theDetParam.theOrigin.y();
296  auto gvz = -1.f / theDetParam.theOrigin.z();
297  //--- Note that the normalization is not required as only the ratio used
298 
299  //theClusterParam.zneg = (gvz < 0); // Not used, AH
300 
301  // calculate angles
302  theClusterParam.cotalpha = gvx * gvz;
303  theClusterParam.cotbeta = gvy * gvz;
304 
305  theClusterParam.with_track_angle = false;
306 
307  /*
308  // used only in dberror param...
309  auto alpha = HALF_PI - std::atan(cotalpha_);
310  auto beta = HALF_PI - std::atan(cotbeta_);
311  if (zneg) { beta -=PI; alpha -=PI;}
312 
313  auto alpha_ = atan2( gv_dot_gvz, gv_dot_gvx );
314  auto beta_ = atan2( gv_dot_gvz, gv_dot_gvy );
315 
316  assert(std::abs(std::round(alpha*10000.f)-std::round(alpha_*10000.f))<2);
317  assert(std::abs(std::round(beta*10000.f)-std::round(beta_*10000.f))<2);
318  */
319 }

References PixelCPEBase::ClusterParam::cotalpha, PixelCPEBase::ClusterParam::cotbeta, Topology::localPosition(), PixelCPEBase::ClusterParam::theCluster, PixelCPEBase::DetParam::theOrigin, PixelCPEBase::DetParam::theTopol, PixelCPEBase::ClusterParam::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 getParameters().

◆ computeAnglesFromTrajectory()

void PixelCPEBase::computeAnglesFromTrajectory ( DetParam const &  theDetParam,
ClusterParam theClusterParam,
const LocalTrajectoryParameters ltp 
) const
protected

Definition at line 257 of file PixelCPEBase.cc.

259  {
260  theClusterParam.cotalpha = ltp.dxdz();
261  theClusterParam.cotbeta = ltp.dydz();
262 
263  LocalPoint trk_lp = ltp.position();
264  theClusterParam.trk_lp_x = trk_lp.x();
265  theClusterParam.trk_lp_y = trk_lp.y();
266 
267  theClusterParam.with_track_angle = true;
268 
269  // GG: needed to correct for bows/kinks
270  theClusterParam.loc_trk_pred = Topology::LocalTrackPred(
271  theClusterParam.trk_lp_x, theClusterParam.trk_lp_y, theClusterParam.cotalpha, theClusterParam.cotbeta);
272 }

References PixelCPEBase::ClusterParam::cotalpha, PixelCPEBase::ClusterParam::cotbeta, LocalTrajectoryParameters::dxdz(), LocalTrajectoryParameters::dydz(), PixelCPEBase::ClusterParam::loc_trk_pred, LocalTrajectoryParameters::position(), PixelCPEBase::ClusterParam::trk_lp_x, PixelCPEBase::ClusterParam::trk_lp_y, PixelCPEBase::ClusterParam::with_track_angle, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Referenced by getParameters().

◆ computeLorentzShifts()

void PixelCPEBase::computeLorentzShifts ( DetParam theDetParam) const
protected

Definition at line 423 of file PixelCPEBase.cc.

423  {
424  // Max shift (at the other side of the sensor) in cm
425  theDetParam.lorentzShiftInCmX =
426  theDetParam.driftDirection.x() / theDetParam.driftDirection.z() * theDetParam.theThickness; //
427  theDetParam.lorentzShiftInCmY =
428  theDetParam.driftDirection.y() / theDetParam.driftDirection.z() * theDetParam.theThickness; //
429 
430  LogDebug("PixelCPEBase::computeLorentzShifts()")
431  << " lorentzShiftsInCmX,Y = " << theDetParam.lorentzShiftInCmX << " " << theDetParam.lorentzShiftInCmY << " "
432  << theDetParam.driftDirection;
433 }

References PixelCPEBase::DetParam::driftDirection, LogDebug, PixelCPEBase::DetParam::lorentzShiftInCmX, PixelCPEBase::DetParam::lorentzShiftInCmY, PixelCPEBase::DetParam::theThickness, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by fillDetParams().

◆ createClusterParam()

virtual std::unique_ptr<ClusterParam> PixelCPEBase::createClusterParam ( const SiPixelCluster cl) const
privatepure virtual

◆ detParam()

PixelCPEBase::DetParam const & PixelCPEBase::detParam ( const GeomDetUnit det) const
protected

Definition at line 322 of file PixelCPEBase.cc.

322  {
323  auto i = det.index();
324  //cout << "get parameters of detector " << i << endl;
325  assert(i < int(m_DetParams.size()));
326  //if (i>=int(m_DetParams.size())) m_DetParams.resize(i+1); // should never happen!
327  const DetParam& p = m_DetParams[i];
328  return p;
329 }

References cms::cuda::assert(), mps_fire::i, GeomDet::index(), m_DetParams, and AlCaHLTBitMon_ParallelJobs::p.

Referenced by getParameters().

◆ driftDirection() [1/2]

LocalVector PixelCPEBase::driftDirection ( DetParam theDetParam,
GlobalVector  bfield 
) const
protected

Definition at line 338 of file PixelCPEBase.cc.

338  {
339  Frame detFrame(theDetParam.theDet->surface().position(), theDetParam.theDet->surface().rotation());
340  LocalVector Bfield = detFrame.toLocal(bfield);
341  return driftDirection(theDetParam, Bfield);
342 }

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

Referenced by fillDetParams().

◆ driftDirection() [2/2]

LocalVector PixelCPEBase::driftDirection ( DetParam theDetParam,
LocalVector  bfield 
) const
protected

Definition at line 344 of file PixelCPEBase.cc.

344  {
345  // Use LA from DB or from config
346  float langle = 0.;
347  if (!useLAOffsetFromConfig_) { // get it from DB
348  if (lorentzAngle_ != nullptr) { // a real LA object
349  langle = lorentzAngle_->getLorentzAngle(theDetParam.theDet->geographicalId().rawId());
350  LogDebug("PixelCPEBase::driftDirection()")
351  << " la " << langle << " " << theDetParam.theDet->geographicalId().rawId() << endl;
352  } else { // no LA, unused
353  langle = 0; // set to a fake value
354  LogDebug("PixelCPEBase::driftDirection()") << " LA object is NULL, assume LA = 0" << endl; //dk
355  }
356  LogDebug("PixelCPEBase::driftDirection()") << " Will use LA Offset from DB " << langle << endl;
357  } else { // from config file
358  langle = lAOffset_;
359  LogDebug("PixelCPEBase::driftDirection()") << " Will use LA Offset from config " << langle << endl;
360  }
361 
362  // Now do the LA width stuff
363  theDetParam.widthLAFractionX = 1.; // predefine to 1 (default) if things fail
364  theDetParam.widthLAFractionY = 1.;
365 
366  // Compute the charge width, generic only
367  if (theFlag_ == 0) {
368  if (useLAWidthFromDB_ && (lorentzAngleWidth_ != nullptr)) {
369  // take it from a separate, special LA DB object (forWidth)
370 
371  auto langleWidth = lorentzAngleWidth_->getLorentzAngle(theDetParam.theDet->geographicalId().rawId());
372  if (langleWidth != 0.0)
373  theDetParam.widthLAFractionX = std::abs(langleWidth / langle);
374  // leave the widthLAFractionY=1.
375  //cout<<" LAWidth lorentz width "<<theDetParam.widthLAFractionX<<" "<<theDetParam.widthLAFractionY<<endl;
376 
377  } else if (useLAWidthFromConfig_) { // get from config
378 
379  double lAWidth = 0;
380  if (GeomDetEnumerators::isTrackerPixel(theDetParam.thePart) && GeomDetEnumerators::isBarrel(theDetParam.thePart))
381  lAWidth = lAWidthBPix_; // barrel
382  else
383  lAWidth = lAWidthFPix_;
384 
385  if (langle != 0.0)
386  theDetParam.widthLAFractionX = std::abs(lAWidth / langle);
387  // fix the FractionY at 1
388 
389  //cout<<" Lorentz width from config "<<theDetParam.widthLAFractionX<<" "<<theDetParam.widthLAFractionY<<endl;
390 
391  } else { // get if from the offset LA (old method used until 2013)
392  // do nothing
393  //cout<<" Old default LA width method "<<theDetParam.widthLAFractionX<<" "<<theDetParam.widthLAFractionY<<endl;
394  }
395 
396  //cout<<" Final LA fraction "<<theDetParam.widthLAFractionX<<" "<<theDetParam.widthLAFractionY<<endl;
397 
398  } // if flag
399 
400  float alpha2 = alpha2Order ? langle * langle : 0; //
401 
402  // **********************************************************************
403  // Our convention is the following:
404  // +x is defined by the direction of the Lorentz drift!
405  // +z is defined by the direction of E field (so electrons always go into -z!)
406  // +y is defined by +x and +z, and it turns out to be always opposite to the +B field.
407  // **********************************************************************
408 
409  float dir_x = -(langle * Bfield.y() + alpha2 * Bfield.z() * Bfield.x());
410  float dir_y = (langle * Bfield.x() - alpha2 * Bfield.z() * Bfield.y());
411  float dir_z = -(1.f + alpha2 * Bfield.z() * Bfield.z());
412  auto scale = 1.f / std::abs(dir_z); // same as 1 + alpha2*Bfield.z()*Bfield.z()
413  LocalVector dd(dir_x * scale, dir_y * scale, -1.f); // last is -1 !
414 
415  LogDebug("PixelCPEBase") << " The drift direction in local coordinate is " << dd;
416 
417  return dd;
418 }

References funct::abs(), alpha2Order, createTree::dd, f, GeomDet::geographicalId(), SiPixelLorentzAngle::getLorentzAngle(), GeomDetEnumerators::isBarrel(), GeomDetEnumerators::isTrackerPixel(), lAOffset_, lAWidthBPix_, lAWidthFPix_, LogDebug, lorentzAngle_, lorentzAngleWidth_, DetId::rawId(), L1EGammaCrystalsEmulatorProducer_cfi::scale, PixelCPEBase::DetParam::theDet, theFlag_, PixelCPEBase::DetParam::thePart, useLAOffsetFromConfig_, useLAWidthFromConfig_, useLAWidthFromDB_, PixelCPEBase::DetParam::widthLAFractionX, PixelCPEBase::DetParam::widthLAFractionY, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

◆ fillDetParams()

void PixelCPEBase::fillDetParams ( )
private

Definition at line 121 of file PixelCPEBase.cc.

121  {
122  // MM: this code finds the last Pixel (Inner Tracker) DetUnit to loop upon when filling the det params, by looking the first detId which is from
123  // the Outer Tracker (Strips in case of the Phase-0/1 detector).
124 
125  auto const& dus = geom_.detUnits();
126  unsigned m_detectors = dus.size();
127  for (unsigned int i = 1; i < 7; ++i) {
128  LogDebug("PixelCPEBase:: LookingForFirstStrip")
129  << "Subdetector " << i << " GeomDetEnumerator " << GeomDetEnumerators::tkDetEnum[i] << " offset "
130  << geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i]) << " is it strip? "
131  << (geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i]) != dus.size()
132  ? dus[geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i])]->type().isOuterTracker()
133  : false);
134 
135  if (geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i]) != dus.size() &&
136  dus[geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i])]->type().isOuterTracker()) {
137  if (geom_.offsetDU(GeomDetEnumerators::tkDetEnum[i]) < m_detectors) {
139  }
140  }
141  }
142  LogDebug("LookingForFirstStrip") << " Chosen offset: " << m_detectors;
143 
144  m_DetParams.resize(m_detectors);
145  LogDebug("PixelCPEBase::fillDetParams():") << "caching " << m_detectors << " pixel detectors" << endl;
146  for (unsigned i = 0; i != m_detectors; ++i) {
147  auto& p = m_DetParams[i];
148  p.theDet = dynamic_cast<const PixelGeomDetUnit*>(dus[i]);
149  assert(p.theDet);
150  assert(p.theDet->index() == int(i));
151 
152  p.theOrigin = p.theDet->surface().toLocal(GlobalPoint(0, 0, 0));
153 
154  //--- p.theDet->type() returns a GeomDetType, which implements subDetector()
155  p.thePart = p.theDet->type().subDetector();
156 
157  //--- The location in of this DetUnit in a cyllindrical coord system (R,Z)
158  //--- The call goes via BoundSurface, returned by p.theDet->surface(), but
159  //--- position() is implemented in GloballyPositioned<> template
160  //--- ( BoundSurface : Surface : GloballyPositioned<float> )
161  //p.theDetR = p.theDet->surface().position().perp(); //Not used, AH
162  //p.theDetZ = p.theDet->surface().position().z(); //Not used, AH
163  //--- Define parameters for chargewidth calculation
164 
165  //--- bounds() is implemented in BoundSurface itself.
166  p.theThickness = p.theDet->surface().bounds().thickness();
167 
168  // Cache the det id for templates and generic erros
169 
170  if (theFlag_ == 0) { // for generic
171  if (LoadTemplatesFromDB_) // do only if genError requested
172  p.detTemplateId = genErrorDBObject_->getGenErrorID(p.theDet->geographicalId().rawId());
173  } else { // for templates
174  p.detTemplateId = templateDBobject_->getTemplateID(p.theDet->geographicalId());
175  }
176 
177  auto topol = &(p.theDet->specificTopology());
178  p.theTopol = topol;
179  auto const proxyT = dynamic_cast<const ProxyPixelTopology*>(p.theTopol);
180  if (proxyT)
181  p.theRecTopol = dynamic_cast<const RectangularPixelTopology*>(&(proxyT->specificTopology()));
182  else
183  p.theRecTopol = dynamic_cast<const RectangularPixelTopology*>(p.theTopol);
184  assert(p.theRecTopol);
185 
186  //--- The geometrical description of one module/plaquette
187  //p.theNumOfRow = p.theRecTopol->nrows(); // rows in x //Not used, AH. PM: leave commented out.
188  //p.theNumOfCol = p.theRecTopol->ncolumns(); // cols in y //Not used, AH. PM: leave commented out.
189  std::pair<float, float> pitchxy = p.theRecTopol->pitch();
190  p.thePitchX = pitchxy.first; // pitch along x
191  p.thePitchY = pitchxy.second; // pitch along y
192 
193  LocalVector Bfield = p.theDet->surface().toLocal(magfield_->inTesla(p.theDet->surface().position()));
194  p.bz = Bfield.z();
195  p.bx = Bfield.x();
196 
197  //--- Compute the Lorentz shifts for this detector element
198  if ((theFlag_ == 0) || useLAFromDB_ ||
199  doLorentzFromAlignment_) { // do always for generic and if using LA from DB or alignment for templates
200  p.driftDirection = driftDirection(p, Bfield);
202  }
203 
204  LogDebug("PixelCPEBase::fillDetParams()") << "***** PIXEL LAYOUT *****"
205  << " thePart = " << p.thePart << " theThickness = " << p.theThickness
206  << " thePitchX = " << p.thePitchX << " thePitchY = " << p.thePitchY;
207  // << " theLShiftX = " << p.theLShiftX;
208  }
209 }

References cms::cuda::assert(), computeLorentzShifts(), TrackerGeometry::detUnits(), doLorentzFromAlignment_, driftDirection(), genErrorDBObject_, geom_, SiPixelGenErrorDBObject::getGenErrorID(), SiPixelTemplateDBObject::getTemplateID(), mps_fire::i, createfilelist::int, MagneticField::inTesla(), LoadTemplatesFromDB_, LogDebug, m_DetParams, magfield_, TrackerGeometry::offsetDU(), AlCaHLTBitMon_ParallelJobs::p, templateDBobject_, theFlag_, GeomDetEnumerators::tkDetEnum, useLAFromDB_, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by PixelCPEBase().

◆ fillPSetDescription()

void PixelCPEBase::fillPSetDescription ( edm::ParameterSetDescription desc)
static

Definition at line 467 of file PixelCPEBase.cc.

467  {
468  desc.add<bool>("LoadTemplatesFromDB", true);
469  desc.add<bool>("Alpha2Order", true);
470  desc.add<int>("ClusterProbComputationFlag", 0);
471  desc.add<bool>("useLAWidthFromDB", true);
472  desc.add<double>("lAOffset", 0.0);
473  desc.add<double>("lAWidthBPix", 0.0);
474  desc.add<double>("lAWidthFPix", 0.0);
475  desc.add<bool>("doLorentzFromAlignment", false);
476  desc.add<bool>("useLAFromDB", true);
477 }

References submitPVResolutionJobs::desc.

Referenced by PixelCPEFastESProducer::fillDescriptions(), PixelCPETemplateRecoESProducer::fillDescriptions(), PixelCPEClusterRepairESProducer::fillDescriptions(), and PixelCPEGenericESProducer::fillDescriptions().

◆ getParameters() [1/2]

ReturnType PixelCPEBase::getParameters ( const SiPixelCluster cl,
const GeomDetUnit det 
) const
inlineoverridevirtual

Implements PixelClusterParameterEstimator.

Definition at line 133 of file PixelCPEBase.h.

133  {
134 #ifdef EDM_ML_DEBUG
135  nRecHitsTotal_++;
136  LogDebug("PixelCPEBase") << " in PixelCPEBase:localParameters(all) - " << nRecHitsTotal_;
137 #endif
138 
139  DetParam const& theDetParam = detParam(det);
140  std::unique_ptr<ClusterParam> theClusterParam = createClusterParam(cl);
141  setTheClu(theDetParam, *theClusterParam);
142  computeAnglesFromDetPosition(theDetParam, *theClusterParam);
143 
144  // localPosition( cl, det ) must be called before localError( cl, det ) !!!
145  LocalPoint lp = localPosition(theDetParam, *theClusterParam);
146  LocalError le = localError(theDetParam, *theClusterParam);
147  SiPixelRecHitQuality::QualWordType rqw = rawQualityWord(*theClusterParam);
148  auto tuple = std::make_tuple(lp, le, rqw);
149 
150  LogDebug("PixelCPEBase") << " in PixelCPEBase:localParameters(all) - " << lp.x() << " " << lp.y();
151  return tuple;
152  }

References GetRecoTauVFromDQM_MC_cff::cl, computeAnglesFromDetPosition(), createClusterParam(), detParam(), localError(), localPosition(), LogDebug, rawQualityWord(), setTheClu(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

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

◆ getParameters() [2/2]

ReturnType PixelCPEBase::getParameters ( const SiPixelCluster cl,
const GeomDetUnit det,
const LocalTrajectoryParameters ltp 
) const
inlineoverridevirtual

Implements PixelClusterParameterEstimator.

Definition at line 157 of file PixelCPEBase.h.

159  {
160 #ifdef EDM_ML_DEBUG
161  nRecHitsTotal_++;
162  LogDebug("PixelCPEBase") << " in PixelCPEBase:localParameters(on track) - " << nRecHitsTotal_;
163 #endif
164 
165  DetParam const& theDetParam = detParam(det);
166  std::unique_ptr<ClusterParam> theClusterParam = createClusterParam(cl);
167  setTheClu(theDetParam, *theClusterParam);
168  computeAnglesFromTrajectory(theDetParam, *theClusterParam, ltp);
169 
170  // localPosition( cl, det ) must be called before localError( cl, det ) !!!
171  LocalPoint lp = localPosition(theDetParam, *theClusterParam);
172  LocalError le = localError(theDetParam, *theClusterParam);
173  SiPixelRecHitQuality::QualWordType rqw = rawQualityWord(*theClusterParam);
174  auto tuple = std::make_tuple(lp, le, rqw);
175 
176  LogDebug("PixelCPEBase") << " in PixelCPEBase:localParameters(on track) - " << lp.x() << " " << lp.y();
177  return tuple;
178  }

References GetRecoTauVFromDQM_MC_cff::cl, computeAnglesFromTrajectory(), createClusterParam(), detParam(), localError(), localPosition(), LogDebug, rawQualityWord(), setTheClu(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

◆ localError()

virtual LocalError PixelCPEBase::localError ( DetParam const &  theDetParam,
ClusterParam theClusterParam 
) const
privatepure virtual

◆ localPosition()

virtual LocalPoint PixelCPEBase::localPosition ( DetParam const &  theDetParam,
ClusterParam theClusterParam 
) const
privatepure virtual

◆ rawQualityWord()

SiPixelRecHitQuality::QualWordType PixelCPEBase::rawQualityWord ( ClusterParam theClusterParam) const
private

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.

Definition at line 441 of file PixelCPEBase.cc.

441  {
443  if (theClusterParam.hasFilledProb_) {
444  float probabilityXY = 0;
445  if (theClusterParam.filled_from_2d)
446  probabilityXY = theClusterParam.probabilityX_;
447  else if (theClusterParam.probabilityX_ != 0 && theClusterParam.probabilityY_ != 0)
448  probabilityXY = theClusterParam.probabilityX_ * theClusterParam.probabilityY_ *
449  (1.f - std::log(theClusterParam.probabilityX_ * theClusterParam.probabilityY_));
450  SiPixelRecHitQuality::thePacking.setProbabilityXY(probabilityXY, qualWord);
451 
452  SiPixelRecHitQuality::thePacking.setProbabilityQ(theClusterParam.probabilityQ_, qualWord);
453  }
454  SiPixelRecHitQuality::thePacking.setQBin(theClusterParam.qBin_, qualWord);
455 
456  SiPixelRecHitQuality::thePacking.setIsOnEdge(theClusterParam.isOnEdge_, qualWord);
457 
458  SiPixelRecHitQuality::thePacking.setHasBadPixels(theClusterParam.hasBadPixels_, qualWord);
459 
460  SiPixelRecHitQuality::thePacking.setSpansTwoROCs(theClusterParam.spansTwoROCs_, qualWord);
461 
462  SiPixelRecHitQuality::thePacking.setHasFilledProb(theClusterParam.hasFilledProb_, qualWord);
463 
464  return qualWord;
465 }

References PixelCPEBase::ClusterParam::filled_from_2d, PixelCPEBase::ClusterParam::hasBadPixels_, PixelCPEBase::ClusterParam::hasFilledProb_, PixelCPEBase::ClusterParam::isOnEdge_, dqm-mbProfile::log, PixelCPEBase::ClusterParam::probabilityQ_, PixelCPEBase::ClusterParam::probabilityX_, PixelCPEBase::ClusterParam::probabilityY_, PixelCPEBase::ClusterParam::qBin_, SiPixelRecHitQuality::Packing::setHasBadPixels(), SiPixelRecHitQuality::Packing::setHasFilledProb(), SiPixelRecHitQuality::Packing::setIsOnEdge(), SiPixelRecHitQuality::Packing::setProbabilityQ(), SiPixelRecHitQuality::Packing::setProbabilityXY(), SiPixelRecHitQuality::Packing::setQBin(), SiPixelRecHitQuality::Packing::setSpansTwoROCs(), PixelCPEBase::ClusterParam::spansTwoROCs_, and SiPixelRecHitQuality::thePacking.

Referenced by getParameters().

◆ setTheClu()

void PixelCPEBase::setTheClu ( DetParam const &  theDetParam,
ClusterParam theClusterParam 
) const
protected

Definition at line 214 of file PixelCPEBase.cc.

214  {
215  //--- Geometric Quality Information
216  int minInX, minInY, maxInX, maxInY = 0;
217  minInX = theClusterParam.theCluster->minPixelRow();
218  minInY = theClusterParam.theCluster->minPixelCol();
219  maxInX = theClusterParam.theCluster->maxPixelRow();
220  maxInY = theClusterParam.theCluster->maxPixelCol();
221 
222  int min_row(0), min_col(0);
223  int max_row = theDetParam.theRecTopol->nrows() - 1;
224  int max_col = theDetParam.theRecTopol->ncolumns() - 1;
225 
226  if (minInX == min_row)
227  theClusterParam.edgeTypeX_ = 1;
228  else if (maxInX == max_row)
229  theClusterParam.edgeTypeX_ = 2;
230  else
231  theClusterParam.edgeTypeX_ = 0;
232 
233  if (minInY == min_col)
234  theClusterParam.edgeTypeY_ = 1;
235  else if (maxInY == max_col)
236  theClusterParam.edgeTypeY_ = 2;
237  else
238  theClusterParam.edgeTypeY_ = 0;
239 
240  theClusterParam.isOnEdge_ = (theClusterParam.edgeTypeX_ || theClusterParam.edgeTypeY_);
241 
242  // &&& FOR NOW UNUSED. KEEP IT IN CASE WE WANT TO USE IT IN THE FUTURE
243  // Bad Pixels have their charge set to 0 in the clusterizer
244  //hasBadPixels_ = false;
245  //for(unsigned int i=0; i<theClusterParam.theCluster->pixelADC().size(); ++i) {
246  //if(theClusterParam.theCluster->pixelADC()[i] == 0) { hasBadPixels_ = true; break;}
247  //}
248 
249  theClusterParam.spansTwoROCs_ = theDetParam.theRecTopol->containsBigPixelInX(minInX, maxInX) |
250  theDetParam.theRecTopol->containsBigPixelInY(minInY, maxInY);
251 }

References RectangularPixelTopology::containsBigPixelInX(), RectangularPixelTopology::containsBigPixelInY(), PixelCPEBase::ClusterParam::edgeTypeX_, PixelCPEBase::ClusterParam::edgeTypeY_, PixelCPEBase::ClusterParam::isOnEdge_, SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), RectangularPixelTopology::ncolumns(), RectangularPixelTopology::nrows(), PixelCPEBase::ClusterParam::spansTwoROCs_, PixelCPEBase::ClusterParam::theCluster, and PixelCPEBase::DetParam::theRecTopol.

Referenced by getParameters().

Member Data Documentation

◆ alpha2Order

bool PixelCPEBase::alpha2Order
protected

Definition at line 239 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ bothEdgeXError_

constexpr float PixelCPEBase::bothEdgeXError_ = 31.0f
staticconstexprprotected

◆ bothEdgeYError_

constexpr float PixelCPEBase::bothEdgeYError_ = 90.0f
staticconstexprprotected

◆ clusterSplitMaxError_

constexpr float PixelCPEBase::clusterSplitMaxError_ = 7777.7f
staticconstexprprotected

◆ doLorentzFromAlignment_

bool PixelCPEBase::doLorentzFromAlignment_
protected

◆ genErrorDBObject_

const SiPixelGenErrorDBObject* PixelCPEBase::genErrorDBObject_
protected

◆ geom_

const TrackerGeometry& PixelCPEBase::geom_
protected

Definition at line 229 of file PixelCPEBase.h.

Referenced by PixelCPEClusterRepair::fill2DTemplIDs(), and fillDetParams().

◆ lAOffset_

float PixelCPEBase::lAOffset_
protected

Definition at line 216 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ lAWidthBPix_

float PixelCPEBase::lAWidthBPix_
protected

Definition at line 217 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ lAWidthFPix_

float PixelCPEBase::lAWidthFPix_
protected

Definition at line 218 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ LoadTemplatesFromDB_

bool PixelCPEBase::LoadTemplatesFromDB_
protected

◆ lorentzAngle_

const SiPixelLorentzAngle* PixelCPEBase::lorentzAngle_
protected

Definition at line 232 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ lorentzAngleWidth_

const SiPixelLorentzAngle* PixelCPEBase::lorentzAngleWidth_
protected

Definition at line 233 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ m_DetParams

DetParams PixelCPEBase::m_DetParams = DetParams(1440)
protected

◆ magfield_

const MagneticField* PixelCPEBase::magfield_
protected

Definition at line 228 of file PixelCPEBase.h.

Referenced by fillDetParams().

◆ templateDBobject_

const SiPixelTemplateDBObject* PixelCPEBase::templateDBobject_
protected

◆ theFlag_

int PixelCPEBase::theFlag_
protected

Definition at line 226 of file PixelCPEBase.h.

Referenced by driftDirection(), fillDetParams(), and PixelCPEBase().

◆ theVerboseLevel

int PixelCPEBase::theVerboseLevel
protected

◆ ttopo_

const TrackerTopology& PixelCPEBase::ttopo_
protected

◆ useLAFromDB_

bool PixelCPEBase::useLAFromDB_
protected

Definition at line 241 of file PixelCPEBase.h.

Referenced by fillDetParams(), and PixelCPEBase().

◆ useLAOffsetFromConfig_

bool PixelCPEBase::useLAOffsetFromConfig_
protected

Definition at line 220 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ useLAWidthFromConfig_

bool PixelCPEBase::useLAWidthFromConfig_
protected

Definition at line 221 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ useLAWidthFromDB_

bool PixelCPEBase::useLAWidthFromDB_
protected

Definition at line 222 of file PixelCPEBase.h.

Referenced by driftDirection(), and PixelCPEBase().

◆ xEdgeXError_

constexpr float PixelCPEBase::xEdgeXError_ = 23.0f
staticconstexprprotected

◆ xEdgeYError_

constexpr float PixelCPEBase::xEdgeYError_ = 39.0f
staticconstexprprotected

◆ yEdgeXError_

constexpr float PixelCPEBase::yEdgeXError_ = 24.0f
staticconstexprprotected

◆ yEdgeYError_

constexpr float PixelCPEBase::yEdgeYError_ = 96.0f
staticconstexprprotected
Vector3DBase< float, LocalTag >
PixelCPEBase::useLAOffsetFromConfig_
bool useLAOffsetFromConfig_
Definition: PixelCPEBase.h:220
PixelCPEBase::Frame
GloballyPositioned< double > Frame
Definition: PixelCPEBase.h:203
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
PixelCPEBase::templateDBobject_
const SiPixelTemplateDBObject * templateDBobject_
Definition: PixelCPEBase.h:238
mps_fire.i
i
Definition: mps_fire.py:428
LocalTrajectoryParameters::dxdz
float dxdz() const
Definition: LocalTrajectoryParameters.h:159
L1EGammaCrystalsEmulatorProducer_cfi.scale
scale
Definition: L1EGammaCrystalsEmulatorProducer_cfi.py:10
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
PixelClusterParameterEstimator::clusterProbComputationFlag_
unsigned int clusterProbComputationFlag_
Definition: PixelClusterParameterEstimator.h:68
PixelCPEBase::genErrorDBObject_
const SiPixelGenErrorDBObject * genErrorDBObject_
Definition: PixelCPEBase.h:235
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
SiPixelRecHitQuality::Packing::setSpansTwoROCs
void setSpansTwoROCs(bool flag, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:145
PixelCPEBase::ttopo_
const TrackerTopology & ttopo_
Definition: PixelCPEBase.h:230
PixelCPEBase::useLAWidthFromDB_
bool useLAWidthFromDB_
Definition: PixelCPEBase.h:222
LocalTrajectoryParameters::dydz
float dydz() const
Definition: LocalTrajectoryParameters.h:160
cms::cuda::assert
assert(be >=bs)
SiPixelRecHitQuality::Packing::setIsOnEdge
void setIsOnEdge(bool flag, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:141
PixelCPEBase::createClusterParam
virtual std::unique_ptr< ClusterParam > createClusterParam(const SiPixelCluster &cl) const =0
PixelCPEBase::driftDirection
LocalVector driftDirection(DetParam &theDetParam, GlobalVector bfield) const
Definition: PixelCPEBase.cc:338
PixelCPEBase::geom_
const TrackerGeometry & geom_
Definition: PixelCPEBase.h:229
GeomDet::index
int index() const
Definition: GeomDet.h:83
PixelCPEBase::theFlag_
int theFlag_
Definition: PixelCPEBase.h:226
PixelCPEBase::alpha2Order
bool alpha2Order
Definition: PixelCPEBase.h:239
PixelCPEBase::detParam
DetParam const & detParam(const GeomDetUnit &det) const
Definition: PixelCPEBase.cc:322
PixelCPEBase::computeAnglesFromTrajectory
void computeAnglesFromTrajectory(DetParam const &theDetParam, ClusterParam &theClusterParam, const LocalTrajectoryParameters &ltp) const
Definition: PixelCPEBase.cc:257
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
SiPixelLorentzAngle::getLorentzAngle
float getLorentzAngle(const uint32_t &) const
Definition: SiPixelLorentzAngle.cc:14
GetRecoTauVFromDQM_MC_cff.cl
cl
Definition: GetRecoTauVFromDQM_MC_cff.py:38
PixelCPEBase::localError
virtual LocalError localError(DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
LocalTrajectoryParameters::position
LocalPoint position() const
Local x and y position coordinates.
Definition: LocalTrajectoryParameters.h:85
SiPixelRecHitQuality::thePacking
static const Packing thePacking
Definition: SiPixelRecHitQuality.h:154
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
PixelCPEBase::m_DetParams
DetParams m_DetParams
Definition: PixelCPEBase.h:283
SiPixelRecHitQuality::QualWordType
unsigned int QualWordType
Definition: SiPixelRecHitQuality.h:9
GeomDetEnumerators::tkDetEnum
constexpr SubDetector tkDetEnum[8]
Definition: GeomDetEnumerators.h:37
Topology::LocalTrackPred
Definition: Topology.h:56
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
SiPixelRecHitQuality::Packing::setQBin
void setQBin(int qbin, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:133
PixelCPEBase::useLAWidthFromConfig_
bool useLAWidthFromConfig_
Definition: PixelCPEBase.h:221
Point3DBase< float, LocalTag >
createTree.dd
string dd
Definition: createTree.py:154
SiPixelGenErrorDBObject::getGenErrorID
short getGenErrorID(const uint32_t &detid) const
Definition: SiPixelGenErrorDBObject.h:89
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
PixelCPEBase::useLAFromDB_
bool useLAFromDB_
Definition: PixelCPEBase.h:241
PixelCPEBase::setTheClu
void setTheClu(DetParam const &, ClusterParam &theClusterParam) const
Definition: PixelCPEBase.cc:214
LocalError
Definition: LocalError.h:12
SiPixelRecHitQuality::Packing::setHasBadPixels
void setHasBadPixels(bool flag, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:142
PixelCPEBase::lorentzAngle_
const SiPixelLorentzAngle * lorentzAngle_
Definition: PixelCPEBase.h:232
PixelCPEBase::lAWidthFPix_
float lAWidthFPix_
Definition: PixelCPEBase.h:218
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
createfilelist.int
int
Definition: createfilelist.py:10
GeomDetEnumerators::isTrackerPixel
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:68
PixelCPEBase::theVerboseLevel
int theVerboseLevel
Definition: PixelCPEBase.h:225
GeomDetEnumerators::isBarrel
bool isBarrel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:57
PixelCPEBase::lorentzAngleWidth_
const SiPixelLorentzAngle * lorentzAngleWidth_
Definition: PixelCPEBase.h:233
PixelCPEBase::LoadTemplatesFromDB_
bool LoadTemplatesFromDB_
Definition: PixelCPEBase.h:244
SiPixelTemplateDBObject::getTemplateID
short getTemplateID(const uint32_t &detid) const
Definition: SiPixelTemplateDBObject.h:131
PixelCPEBase::computeAnglesFromDetPosition
void computeAnglesFromDetPosition(DetParam const &theDetParam, ClusterParam &theClusterParam) const
Definition: PixelCPEBase.cc:291
PixelCPEBase::localPosition
virtual LocalPoint localPosition(DetParam const &theDetParam, ClusterParam &theClusterParam) const =0
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
SiPixelRecHitQuality::Packing::setProbabilityQ
void setProbabilityQ(float prob, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:122
PixelCPEBase::computeLorentzShifts
void computeLorentzShifts(DetParam &) const
Definition: PixelCPEBase.cc:423
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
PixelCPEBase::rawQualityWord
SiPixelRecHitQuality::QualWordType rawQualityWord(ClusterParam &theClusterParam) const
Definition: PixelCPEBase.cc:441
SiPixelRecHitQuality::Packing::setProbabilityXY
void setProbabilityXY(float prob, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:112
PixelCPEBase::lAWidthBPix_
float lAWidthBPix_
Definition: PixelCPEBase.h:217
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
PixelCPEBase::fillDetParams
void fillDetParams()
Definition: PixelCPEBase.cc:121
SiPixelRecHitQuality::Packing::setHasFilledProb
void setHasFilledProb(bool flag, QualWordType &qualWord) const
Definition: SiPixelRecHitQuality.h:148
PixelCPEBase::doLorentzFromAlignment_
bool doLorentzFromAlignment_
Definition: PixelCPEBase.h:243
TrackerGeometry::offsetDU
unsigned int offsetDU(SubDetector sid) const
Definition: TrackerGeometry.h:72
PixelCPEBase::magfield_
const MagneticField * magfield_
Definition: PixelCPEBase.h:228
RemoveAddSevLevel.flag
flag
Definition: RemoveAddSevLevel.py:116
PixelCPEBase::lAOffset_
float lAOffset_
Definition: PixelCPEBase.h:216