|
|
Go to the documentation of this file.
16 : peakMode_(
latency.singleReadOutMode() == 1),
20 BackPlaneCorrectionMap_(BackPlaneCorrection) {
21 typedef std::map<std::string, SiStripModuleGeometry> map_t;
39 static_cast<unsigned int>(
40 max_element(
modules.begin(),
modules.end(), [&](
auto& arg1,
auto& arg2) {
return arg1.second < arg2.second; })
46 for (map_t::const_iterator it =
modules.begin(); it !=
modules.end(); it++) {
48 xtalk2S(
"xtalk2_" + it->first + modeS);
51 throw cms::Exception(
"SiStripConfObject does not contain: ") << xtalk1S;
53 throw cms::Exception(
"SiStripConfObject does not contain: ") << xtalk2S;
55 xtalk1[static_cast<int>(it->second)] = confObj.
get<
double>(xtalk1S);
56 xtalk2[static_cast<int>(it->second)] = confObj.
get<
double>(xtalk2S);
66 const float fullProjection =
67 p.coveredStrips(
p.drift +
LocalVector(0, 0, -
p.thickness),
p.topology->localPosition(barycenter));
68 const float strip = barycenter - 0.5f * (1.f -
p.backplanecorrection) * fullProjection;
70 return std::make_pair(
p.topology->localPosition(
strip),
p.topology->localError(
strip, 1.
f / 12.
f));
82 float dir_x = -tanLorentzAnglePerTesla * lbfield.
y();
83 float dir_y = tanLorentzAnglePerTesla * lbfield.
x();
92 for (
unsigned int i = 1;
i < 7; ++
i) {
105 LogDebug(
"LookingForFirstStrip") <<
" Chosen offset: " <<
m_off;
107 for (
auto i =
m_off;
i != dus.size(); ++
i) {
116 p.thickness = bounds.thickness();
117 p.invThickness = 1.f /
p.thickness;
120 p.nstrips =
p.topology->nstrips();
std::vector< float > xtalk2
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
LocalVector driftDirection(const StripGeomDetUnit *det) const override
const Topology & topology() const override
Returns a reference to the strip proxy topology.
float localPitch(const LocalPoint &) const override
const GeomDetType & type() const override
U second(std::pair< T, U > const &p)
bool isParameter(const std::string &name) const
Param const & param(const GeomDetUnit &det) const
StripCPE(edm::ParameterSet &conf, const MagneticField &, const TrackerGeometry &, const SiStripLorentzAngle &, const SiStripBackPlaneCorrection &, const SiStripConfObject &, const SiStripLatency &)
StripTopology const * topology
Point3DBase< Scalar, LocalTag > LocalPoint
float getBackPlaneCorrection(const uint32_t &) const
std::vector< float > xtalk1
const TrackerGeometry & geom_
const Plane & surface() const
The nominal surface of the GeomDet.
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
constexpr SubDetector tkDetEnum[8]
const Bounds & bounds() const
const SiStripBackPlaneCorrection & BackPlaneCorrectionMap_
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
const SiStripLorentzAngle & LorentzAngleMap_
DetId geographicalId() const
The label of this GeomDet.
float coveredStrips(const LocalVector &, const LocalPoint &) const
Local3DVector LocalVector
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
const MagneticField & magfield_
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const override
bool isTrackerStrip() const
float getLorentzAngle(const uint32_t &) const
valueType get(const std::string &name) const
const PositionType & position() const
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
constexpr uint32_t rawId() const
get the raw id
virtual StripGeomDetType const & specificType() const
virtual const TopologyType & specificTopology() const
Power< A, B >::type pow(const A &a, const B &b)
std::pair< LocalPoint, LocalError > LocalValues
Detector identifier class for the strip tracker.
float stripLength() const override
float angularWidth() const override
unsigned int offsetDU(SubDetector sid) const