CMS 3D CMS Logo

StripCPE.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPE_H
2 #define RecoLocalTracker_SiStripRecHitConverter_StripCPE_H
3 
5 
14 
15 class StripTopology;
16 
18 public:
20 
22  const GeomDetUnit&) const override;
23 
25  const MagneticField&,
26  const TrackerGeometry&,
27  const SiStripLorentzAngle&,
29  const SiStripConfObject&,
30  const SiStripLatency&);
31  LocalVector driftDirection(const StripGeomDetUnit* det) const override;
32 
33  struct Param {
34  Param() : topology(nullptr) {}
38  int nstrips;
41  float coveredStrips(const LocalVector&, const LocalPoint&) const;
42  };
43 
44  struct AlgoParam {
45  Param const& p;
49  float corr;
50  };
51 
53  AlgoParam const& ap) const {
54  return std::make_pair(LocalPoint(), LocalError());
55  }
56 
58  StripCPE::Param const& p = param(det);
59  SiStripDetId::SubDetector loc = SiStripDetId(det.geographicalId()).subDetector();
60 
62  track *= -p.thickness;
63 
64  const float fullProjection = p.coveredStrips(track + p.drift, ltp.position());
65 
66  auto const corr =
67  -0.5f * (1.f - p.backplanecorrection) * fullProjection + 0.5f * p.coveredStrips(track, ltp.position());
68 
69  return AlgoParam{p, ltp, loc, std::abs(fullProjection), corr};
70  }
71 
72 protected:
73  const bool peakMode_;
78  std::vector<float> xtalk1;
79  std::vector<float> xtalk2;
80 
81  Param const& param(const GeomDetUnit& det) const { return m_Params[det.index() - m_off]; }
82 
83 private:
84  void fillParams();
85  typedef std::vector<Param> Params;
87  unsigned int m_off;
88 };
89 #endif
std::pair< LocalPoint, LocalError > LocalValues
float invThickness
Definition: StripCPE.h:37
const bool peakMode_
Definition: StripCPE.h:73
LocalVector directionNotNormalized() const
Momentum vector unit in the local frame.
Params m_Params
Definition: StripCPE.h:86
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
std::vector< Param > Params
Definition: StripCPE.h:85
StripCPE(edm::ParameterSet &conf, const MagneticField &, const TrackerGeometry &, const SiStripLorentzAngle &, const SiStripBackPlaneCorrection &, const SiStripConfObject &, const SiStripLatency &)
Definition: StripCPE.cc:9
virtual void localParameters(AClusters const &clusters, ALocalValues &retValues, const GeomDetUnit &gd, const LocalTrajectoryParameters &ltp) const
float pitch_rel_err2
Definition: StripCPE.h:37
int index() const
Definition: GeomDet.h:83
float thickness
Definition: StripCPE.h:37
void fillParams()
Definition: StripCPE.cc:89
StripTopology const * topology
Definition: StripCPE.h:35
SiStripDetId::SubDetector loc
Definition: StripCPE.h:47
Param const & param(const GeomDetUnit &det) const
Definition: StripCPE.h:81
const TrackerGeometry & geom_
Definition: StripCPE.h:74
float backplanecorrection
Definition: StripCPE.h:39
unsigned int m_off
Definition: StripCPE.h:87
const SiStripLorentzAngle & LorentzAngleMap_
Definition: StripCPE.h:76
AlgoParam getAlgoParam(const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
Definition: StripCPE.h:57
std::vector< float > xtalk1
Definition: StripCPE.h:78
dictionary corr
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double f[11][100]
SiStripModuleGeometry
Definition: SiStripEnums.h:8
const MagneticField & magfield_
Definition: StripCPE.h:75
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:64
float afullProjection
Definition: StripCPE.h:48
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const override
Definition: StripCPE.cc:62
virtual StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, AlgoParam const &ap) const
Definition: StripCPE.h:52
const LocalTrajectoryParameters & ltp
Definition: StripCPE.h:46
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
const SiStripBackPlaneCorrection & BackPlaneCorrectionMap_
Definition: StripCPE.h:77
std::vector< float > xtalk2
Definition: StripCPE.h:79
float maxLength
Definition: StripCPE.h:37
LocalVector drift
Definition: StripCPE.h:36
SiStripModuleGeometry moduleGeom
Definition: StripCPE.h:40
float coveredStrips(const LocalVector &, const LocalPoint &) const
Definition: StripCPE.cc:73
LocalPoint position() const
Local x and y position coordinates.
LocalVector driftDirection(const StripGeomDetUnit *det) const override
Definition: StripCPE.cc:77
Param const & p
Definition: StripCPE.h:45