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 {
19 public:
21 
23 
24  StripCPE( edm::ParameterSet & conf,
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 {
38  int nstrips;
41  float coveredStrips(const LocalVector&, const LocalPoint&) const;
42  };
43 
44 
45  struct AlgoParam {
46  Param const & p; const LocalTrajectoryParameters & ltp;
47  SiStripDetId::SubDetector loc; float afullProjection; float corr;
48  };
49 
50 
52  localParameters( const SiStripCluster& cl, AlgoParam const & ap) const {
53  return std::make_pair(LocalPoint(), LocalError());
54  }
55 
57 
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 = - 0.5f*(1.f-p.backplanecorrection) * fullProjection
67  + 0.5f*p.coveredStrips(track, ltp.position());
68 
69  return AlgoParam{p,ltp,loc,std::abs(fullProjection),corr};
70  }
71 
72  protected:
73 
74  const bool peakMode_;
79  std::vector<float> xtalk1;
80  std::vector<float> xtalk2;
81 
82  Param const & param(const GeomDetUnit& det) const {
83  return m_Params[det.index()-m_off];
84  }
85 
86 private:
87 
88  void fillParams();
89  typedef std::vector<Param> Params;
90  Params m_Params;
91  unsigned int m_off;
92 
93 };
94 #endif
float invThickness
Definition: StripCPE.h:37
const bool peakMode_
Definition: StripCPE.h:74
Params m_Params
Definition: StripCPE.h:90
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:32
std::vector< Param > Params
Definition: StripCPE.h:89
StripCPE(edm::ParameterSet &conf, const MagneticField &, const TrackerGeometry &, const SiStripLorentzAngle &, const SiStripBackPlaneCorrection &, const SiStripConfObject &, const SiStripLatency &)
Definition: StripCPE.cc:11
float pitch_rel_err2
Definition: StripCPE.h:37
LocalPoint position() const
Local x and y position coordinates.
float thickness
Definition: StripCPE.h:37
void fillParams()
Definition: StripCPE.cc:95
virtual void localParameters(AClusters const &clusters, ALocalValues &retValues, const GeomDetUnit &gd, const LocalTrajectoryParameters &ltp) const
StripTopology const * topology
Definition: StripCPE.h:35
#define nullptr
SiStripDetId::SubDetector loc
Definition: StripCPE.h:47
std::pair< LocalPoint, LocalError > LocalValues
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const override
Definition: StripCPE.cc:65
const TrackerGeometry & geom_
Definition: StripCPE.h:75
float backplanecorrection
Definition: StripCPE.h:39
unsigned int m_off
Definition: StripCPE.h:91
const SiStripLorentzAngle & LorentzAngleMap_
Definition: StripCPE.h:77
std::vector< float > xtalk1
Definition: StripCPE.h:79
SiStripDetId::ModuleGeometry moduleGeom
Definition: StripCPE.h:40
LocalVector directionNotNormalized() const
Momentum vector unit in the local frame.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LocalVector driftDirection(const StripGeomDetUnit *det) const override
Definition: StripCPE.cc:81
DetId geographicalId() const
The label of this GeomDet.
Definition: GeomDet.h:79
virtual StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, AlgoParam const &ap) const
Definition: StripCPE.h:52
double f[11][100]
const MagneticField & magfield_
Definition: StripCPE.h:76
int index() const
Definition: GeomDet.h:99
AlgoParam getAlgoParam(const GeomDetUnit &det, const LocalTrajectoryParameters &ltp) const
Definition: StripCPE.h:56
float coveredStrips(const LocalVector &, const LocalPoint &) const
Definition: StripCPE.cc:76
JetCorrectorParameters corr
Definition: classes.h:5
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
const SiStripBackPlaneCorrection & BackPlaneCorrectionMap_
Definition: StripCPE.h:78
std::vector< float > xtalk2
Definition: StripCPE.h:80
float maxLength
Definition: StripCPE.h:37
Param const & param(const GeomDetUnit &det) const
Definition: StripCPE.h:82
LocalVector drift
Definition: StripCPE.h:36
Param const & p
Definition: StripCPE.h:46