#include <PixelCPEGeneric.h>
Protected Member Functions | |
float | xpos (const SiPixelCluster &) const |
float | ypos (const SiPixelCluster &) const |
Protected Member Functions inherited from PixelCPEBase | |
void | computeAnglesFromDetPosition (const SiPixelCluster &cl, const GeomDetUnit &det) const |
void | computeAnglesFromTrajectory (const SiPixelCluster &cl, const GeomDetUnit &det, const LocalTrajectoryParameters <p) const |
void | computeLorentzShifts () const |
LocalVector | driftDirection (GlobalVector bfield) const |
LocalVector | driftDirectionCorrect (GlobalVector bfield) const |
bool | isFlipped () const |
virtual float | lorentzShiftX () const |
virtual float | lorentzShiftY () const |
MeasurementError | measurementError (const SiPixelCluster &, const GeomDetUnit &det) const |
MeasurementPoint | measurementPosition (const SiPixelCluster &, const GeomDetUnit &det) const |
void | setTheDet (const GeomDetUnit &det, const SiPixelCluster &cluster) const |
void | xCharge (const std::vector< SiPixelCluster::Pixel > &, const int &, const int &, float &q1, float &q2) const |
void | yCharge (const std::vector< SiPixelCluster::Pixel > &, const int &, const int &, float &q1, float &q2) const |
Private Member Functions | |
void | collect_edge_charges (const SiPixelCluster &cluster, float &Q_f_X, float &Q_l_X, float &Q_m_X, float &Q_f_Y, float &Q_l_Y, float &Q_m_Y) const |
float | err2X (bool &, int &) const |
float | err2Y (bool &, int &) const |
double | generic_position_formula (int size, double Q_f, double Q_l, double upper_edge_first_pix, double lower_edge_last_pix, double half_lorentz_shift, double cot_angle, double pitch, bool first_is_big, bool last_is_big, double eff_charge_cut_low, double eff_charge_cut_high, double size_cut) const |
Private Attributes | |
float | deltax |
float | deltay |
bool | DoCosmics_ |
float | dx1 |
float | dx2 |
float | dy1 |
float | dy2 |
double | EdgeClusterErrorX_ |
double | EdgeClusterErrorY_ |
SiPixelCPEGenericDBErrorParametrization * | genErrorsFromDB_ |
bool | inflate_all_errors_no_trk_angle |
bool | inflate_errors |
bool | IrradiationBiasCorrection_ |
bool | LoadTemplatesFromDB_ |
float | pixmx |
float | sigmax |
float | sigmay |
float | sx1 |
float | sx2 |
float | sy1 |
float | sy2 |
SiPixelTemplate | templ_ |
int | templID_ |
double | the_eff_charge_cut_highX |
double | the_eff_charge_cut_highY |
double | the_eff_charge_cut_lowX |
double | the_eff_charge_cut_lowY |
double | the_size_cutX |
double | the_size_cutY |
bool | TruncatePixelCharge_ |
bool | UseErrorsFromTemplates_ |
Definition at line 62 of file PixelCPEGeneric.h.
PixelCPEGeneric::PixelCPEGeneric | ( | edm::ParameterSet const & | conf, |
const MagneticField * | mag, | ||
const SiPixelLorentzAngle * | lorentzAngle, | ||
const SiPixelCPEGenericErrorParm * | genErrorParm, | ||
const SiPixelTemplateDBObject * | templateDBobject | ||
) |
The constructor.
Definition at line 23 of file PixelCPEGeneric.cc.
References DoCosmics_, EdgeClusterErrorX_, EdgeClusterErrorY_, edm::hlt::Exception, edm::ParameterSet::getParameter(), inflate_all_errors_no_trk_angle, inflate_errors, IrradiationBiasCorrection_, LoadTemplatesFromDB_, LogDebug, SiPixelTemplate::pushfile(), templ_, PixelCPEBase::templateDBobject_, templID_, the_eff_charge_cut_highX, the_eff_charge_cut_highY, the_eff_charge_cut_lowX, the_eff_charge_cut_lowY, the_size_cutX, the_size_cutY, PixelCPEBase::theVerboseLevel, TruncatePixelCharge_, and UseErrorsFromTemplates_.
|
inline |
Definition at line 67 of file PixelCPEGeneric.h.
|
private |
Collect the edge charges in x and y, in a single pass over the pixel vector. Calculate charge in the first and last pixel projected in x and y and the inner cluster charge, projected in x and y.
cluster | input, the cluster |
Q_f_X | output, Q first in X |
Q_l_X | output, Q last in X |
Q_m_X | output, Q middle in X |
Q_f_Y | output, Q first in Y |
Q_l_Y | output, Q last in Y |
Q_m_Y | output, Q middle in Y |
Definition at line 482 of file PixelCPEGeneric.cc.
References ecalMGPA::adc(), i, SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), min, SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), SiPixelCluster::pixels(), pixmx, TruncatePixelCharge_, UseErrorsFromTemplates_, x, and detailsBasic3DVector::y.
Referenced by localPosition().
|
private |
|
private |
|
private |
A generic version of the position formula. Since it works for both X and Y, in the interest of the simplicity of the code, all parameters are passed by the caller. The only class variable used by this method is the theThickness, since that's common for both X and Y.
size | Size of this projection. |
Q_f | Charge in the first pixel. |
Q_l | Charge in the last pixel. |
upper_edge_first_pix | As the name says. |
lower_edge_last_pix | As the name says. |
half_lorentz_shift | L-shift at half thickness |
cot_angle | cot of alpha_ or beta_ |
pitch | thePitchX or thePitchY |
first_is_big | true if the first is big |
last_is_big | true if the last is big |
eff_charge_cut_low | Use edge if > W_eff (in pix) &&& |
eff_charge_cut_high | Use edge if < W_eff (in pix) &&& |
size_cut | Use edge when size == cuts |
Definition at line 360 of file PixelCPEGeneric.cc.
References gather_cfg::cout, IrradiationBiasCorrection_, PixelCPEBase::nRecHitsTotal_, PixelCPEBase::nRecHitsUsedEdge_, GeomDetEnumerators::PixelBarrel, PixelCPEBase::thePart, PixelCPEBase::theThickness, and PixelCPEBase::theVerboseLevel.
Referenced by localPosition().
|
virtual |
Implements PixelCPEBase.
Definition at line 551 of file PixelCPEGeneric.cc.
References PixelCPEBase::alpha_, PixelCPEBase::beta_, PixelTopology::containsBigPixelInX(), PixelTopology::containsBigPixelInY(), DoCosmics_, EdgeClusterErrorX_, EdgeClusterErrorY_, edm::hlt::Exception, PixelCPEBase::genErrorParm_, genErrorsFromDB_, SiPixelCPEGenericDBErrorParametrization::getError(), inflate_errors, PixelTopology::isItBigPixelInX(), PixelTopology::isItBigPixelInY(), PixelTopology::isItEdgePixelInX(), PixelTopology::isItEdgePixelInY(), LogDebug, SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), micronsToCm, SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), GeomDetEnumerators::PixelBarrel, PixelCPEBase::qBin_, PixelCPEBase::setTheDet(), sigmax, sigmay, SiPixelCluster::sizeX(), SiPixelCluster::sizeY(), mathSSE::sqrt(), sx1, sx2, sy1, sy2, PixelCPEBase::thePart, PixelCPEBase::thePitchX, PixelCPEBase::thePitchY, PixelCPEBase::theTopol, PixelCPEBase::theVerboseLevel, UseErrorsFromTemplates_, and PixelCPEBase::with_track_angle.
|
virtual |
Hit position in the local frame (in cm). Unlike other CPE's, this one converts everything from the measurement frame (in channel numbers) into the local frame (in centimeters).
< Initialize this det unit
< correctly compute lorentz shifts in X and Y
< Q of the first pixel in X
< Q of the last pixel in X
< Q of the middle pixels in X
< Q of the first pixel in Y
< Q of the last pixel in Y
< Q of the middle pixels in Y
Reimplemented from PixelCPEBase.
Definition at line 120 of file PixelCPEGeneric.cc.
References SiPixelCluster::charge(), collect_edge_charges(), PixelCPEBase::computeLorentzShifts(), PixelCPEBase::cotalpha_, PixelCPEBase::cotbeta_, gather_cfg::cout, deltax, deltay, dx1, dx2, dy1, dy2, edm::hlt::Exception, generic_position_formula(), GeomDet::geographicalId(), SiPixelTemplateDBObject::getTemplateID(), MagneticField::inTesla(), IrradiationBiasCorrection_, PixelTopology::isItBigPixelInX(), PixelTopology::isItBigPixelInY(), PixelCPEBase::loc_trk_pred_, Topology::localPosition(), PixelCPEBase::lorentzShiftInCmX_, PixelCPEBase::lorentzShiftInCmY_, PixelCPEBase::magfield_, SiPixelCluster::maxPixelCol(), SiPixelCluster::maxPixelRow(), micronsToCm, SiPixelCluster::minPixelCol(), SiPixelCluster::minPixelRow(), pixmx, GloballyPositioned< T >::position(), SiPixelTemplate::qbin(), PixelCPEBase::qBin_, DetId::rawId(), GloballyPositioned< T >::rotation(), PixelCPEBase::setTheDet(), sigmax, sigmay, SiPixelCluster::sizeX(), SiPixelCluster::sizeY(), GeomDet::surface(), sx1, sx2, sy1, sy2, templ_, PixelCPEBase::templateDBobject_, templID_, the_eff_charge_cut_highX, the_eff_charge_cut_highY, the_eff_charge_cut_lowX, the_eff_charge_cut_lowY, the_size_cutX, the_size_cutY, PixelCPEBase::theDet, PixelCPEBase::thePitchX, PixelCPEBase::thePitchY, PixelCPEBase::theTopol, PixelCPEBase::theVerboseLevel, UseErrorsFromTemplates_, PixelCPEBase::with_track_angle, PV3DBase< T, PVType, FrameType >::x(), SiPixelCluster::x(), xPos, PV3DBase< T, PVType, FrameType >::y(), SiPixelCluster::y(), yPos, and PV3DBase< T, PVType, FrameType >::z().
Referenced by measurementPosition().
MeasurementPoint PixelCPEGeneric::measurementPosition | ( | const SiPixelCluster & | cluster, |
const GeomDetUnit & | det | ||
) | const |
Definition at line 99 of file PixelCPEGeneric.cc.
References LocalTrajectoryParameters::dxdz(), LocalTrajectoryParameters::dydz(), PixelCPEBase::loc_traj_param_, localPosition(), Topology::measurementPosition(), PixelCPEBase::theTopol, and PixelCPEBase::with_track_angle.
|
inlineprotectedvirtual |
Implements PixelCPEBase.
Definition at line 167 of file PixelCPEGeneric.h.
|
inlineprotectedvirtual |
Implements PixelCPEBase.
Definition at line 168 of file PixelCPEGeneric.h.
|
mutableprivate |
Definition at line 157 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
mutableprivate |
Definition at line 156 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
private |
Definition at line 127 of file PixelCPEGeneric.h.
Referenced by localError(), and PixelCPEGeneric().
|
mutableprivate |
Definition at line 160 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
mutableprivate |
Definition at line 161 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
mutableprivate |
Definition at line 158 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
mutableprivate |
Definition at line 159 of file PixelCPEGeneric.h.
Referenced by localPosition().
|
private |
Definition at line 132 of file PixelCPEGeneric.h.
Referenced by localError(), and PixelCPEGeneric().
|
private |
Definition at line 133 of file PixelCPEGeneric.h.
Referenced by localError(), and PixelCPEGeneric().
|
private |
Definition at line 136 of file PixelCPEGeneric.h.
Referenced by localError().
|
private |
Definition at line 124 of file PixelCPEGeneric.h.
Referenced by PixelCPEGeneric().
|
private |
Definition at line 123 of file PixelCPEGeneric.h.
Referenced by localError(), and PixelCPEGeneric().
|
private |
Definition at line 130 of file PixelCPEGeneric.h.
Referenced by generic_position_formula(), localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 128 of file PixelCPEGeneric.h.
Referenced by PixelCPEGeneric().
|
mutableprivate |
Definition at line 145 of file PixelCPEGeneric.h.
Referenced by collect_edge_charges(), and localPosition().
|
mutableprivate |
Definition at line 149 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 148 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 152 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 153 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 150 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 151 of file PixelCPEGeneric.h.
Referenced by localError(), and localPosition().
|
mutableprivate |
Definition at line 138 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
mutableprivate |
Definition at line 139 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 118 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 119 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 116 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 117 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 120 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 121 of file PixelCPEGeneric.h.
Referenced by localPosition(), and PixelCPEGeneric().
|
private |
Definition at line 129 of file PixelCPEGeneric.h.
Referenced by collect_edge_charges(), and PixelCPEGeneric().
|
private |
Definition at line 126 of file PixelCPEGeneric.h.
Referenced by collect_edge_charges(), localError(), localPosition(), and PixelCPEGeneric().