Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:29

0001 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
0002 #define RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
0003 
0004 #include "RecoLocalTracker/SiStripRecHitConverter/interface/StripCPE.h"
0005 
0006 class StripCPEfromTrackAngle : public StripCPE {
0007 private:
0008   using StripCPE::localParameters;
0009 
0010   //Error parameterization, low cluster width function
0011   float mLC_P[3];
0012   float mHC_P[4][2];
0013 
0014   //High cluster width is broken down by sub-det
0015   std::map<SiStripDetId::SubDetector, float> mHC_P0;
0016   std::map<SiStripDetId::SubDetector, float> mHC_P1;
0017 
0018   //Set to true if we are using the old error parameterization
0019   const bool useLegacyError;
0020 
0021   //Clusters with charge/path > this cut will use old error parameterization
0022   // (overridden by useLegacyError; negative value disables the cut)
0023   const float maxChgOneMIP;
0024 
0025   enum class Algo { legacy, mergeCK, chargeCK };
0026 
0027   Algo m_algo;
0028 
0029 public:
0030   using AlgoParam = StripCPE::AlgoParam;
0031   using AClusters = StripClusterParameterEstimator::AClusters;
0032   using ALocalValues = StripClusterParameterEstimator::ALocalValues;
0033 
0034   void localParameters(AClusters const& clusters,
0035                        ALocalValues& retValues,
0036                        const GeomDetUnit& gd,
0037                        const LocalTrajectoryParameters& ltp) const override;
0038 
0039   StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster& cl,
0040                                                               AlgoParam const& ap) const override;
0041 
0042   StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster&,
0043                                                               const GeomDetUnit&,
0044                                                               const LocalTrajectoryParameters&) const override;
0045 
0046   float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc) const;
0047   float legacyStripErrorSquared(const unsigned N, const float uProj) const;
0048 
0049   StripCPEfromTrackAngle(edm::ParameterSet& conf,
0050                          const MagneticField& mag,
0051                          const TrackerGeometry& geom,
0052                          const SiStripLorentzAngle& lorentz,
0053                          const SiStripBackPlaneCorrection& backPlaneCorrection,
0054                          const SiStripConfObject& confObj,
0055                          const SiStripLatency& latency);
0056 };
0057 #endif