CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripCPEfromTrackAngle.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
2 #define RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
3 
5 
7 {
8 
9 private:
11 
12  //Error parameterization, low cluster width function
13  float mLC_P[3];
14  float mHC_P[4][2];
15 
16  //High cluster width is broken down by sub-det
17  std::map<SiStripDetId::SubDetector, float> mHC_P0;
18  std::map<SiStripDetId::SubDetector, float> mHC_P1;
19 
20  //Set to true if we are using the old error parameterization
21  const bool useLegacyError;
22 
23 public:
26 
27  float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc ) const ;
28  float legacyStripErrorSquared(const unsigned N, const float uProj) const;
29 
31  const MagneticField& mag,
32  const TrackerGeometry& geom,
33  const SiStripLorentzAngle& lorentz,
34  const SiStripBackPlaneCorrection& backPlaneCorrection,
35  const SiStripConfObject& confObj,
36  const SiStripLatency& latency)
37  : StripCPE(conf, mag, geom, lorentz, backPlaneCorrection, confObj, latency )
38  , useLegacyError(conf.existsAs<bool>("useLegacyError") ? conf.getParameter<bool>("useLegacyError") : true)
39  {
40  mLC_P[0] = conf.existsAs<double>("mLC_P0") ? conf.getParameter<double>("mLC_P0") : -.326;
41  mLC_P[1] = conf.existsAs<double>("mLC_P1") ? conf.getParameter<double>("mLC_P1") : .618;
42  mLC_P[2] = conf.existsAs<double>("mLC_P2") ? conf.getParameter<double>("mLC_P2") : .300;
43 
44  mHC_P[SiStripDetId::TIB - 3][0] = conf.existsAs<double>("mTIB_P0") ? conf.getParameter<double>("mTIB_P0") : -.742 ;
45  mHC_P[SiStripDetId::TIB - 3][1] = conf.existsAs<double>("mTIB_P1") ? conf.getParameter<double>("mTIB_P1") : .202 ;
46  mHC_P[SiStripDetId::TID - 3][0] = conf.existsAs<double>("mTID_P0") ? conf.getParameter<double>("mTID_P0") : -1.026 ;
47  mHC_P[SiStripDetId::TID - 3][1] = conf.existsAs<double>("mTID_P1") ? conf.getParameter<double>("mTID_P1") : .253 ;
48  mHC_P[SiStripDetId::TOB - 3][0] = conf.existsAs<double>("mTOB_P0") ? conf.getParameter<double>("mTOB_P0") : -1.427 ;
49  mHC_P[SiStripDetId::TOB - 3][1] = conf.existsAs<double>("mTOB_P1") ? conf.getParameter<double>("mTOB_P1") : .433 ;
50  mHC_P[SiStripDetId::TEC - 3][0] = conf.existsAs<double>("mTEC_P0") ? conf.getParameter<double>("mTEC_P0") : -1.885 ;
51  mHC_P[SiStripDetId::TEC - 3][1] = conf.existsAs<double>("mTEC_P1") ? conf.getParameter<double>("mTEC_P1") : .471 ;
52  }
53 };
54 #endif
float legacyStripErrorSquared(const unsigned N, const float uProj) const
T getParameter(std::string const &) const
StripCPEfromTrackAngle(edm::ParameterSet &conf, const MagneticField &mag, const TrackerGeometry &geom, const SiStripLorentzAngle &lorentz, const SiStripBackPlaneCorrection &backPlaneCorrection, const SiStripConfObject &confObj, const SiStripLatency &latency)
std::map< SiStripDetId::SubDetector, float > mHC_P1
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:184
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &cl, const GeomDetUnit &) const
Definition: StripCPE.cc:65
std::map< SiStripDetId::SubDetector, float > mHC_P0
StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster &, const GeomDetUnit &, const LocalTrajectoryParameters &) const
tuple conf
Definition: dbtoconf.py:185
#define N
Definition: blowfish.cc:9
std::pair< LocalPoint, LocalError > LocalValues
float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc) const