File indexing completed on 2025-01-21 01:40:02
0001 #ifndef RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
0002 #define RecoLocalTracker_SiStripRecHitConverter_StripCPEfromTrackAngle_H
0003
0004 #include "RecoLocalTracker/SiStripRecHitConverter/interface/StripCPE.h"
0005 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0006 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0007
0008 class StripCPEfromTrackAngle : public StripCPE {
0009 private:
0010 using StripCPE::localParameters;
0011
0012
0013 float mLC_P[3];
0014 float mHC_P[4][2];
0015
0016
0017 std::map<SiStripDetId::SubDetector, float> mHC_P0;
0018 std::map<SiStripDetId::SubDetector, float> mHC_P1;
0019
0020
0021 const bool useLegacyError;
0022
0023
0024
0025 const float maxChgOneMIP;
0026
0027 enum class Algo { legacy, mergeCK, chargeCK };
0028
0029 Algo m_algo;
0030
0031 public:
0032 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0033
0034 using AlgoParam = StripCPE::AlgoParam;
0035 using AClusters = StripClusterParameterEstimator::AClusters;
0036 using ALocalValues = StripClusterParameterEstimator::ALocalValues;
0037
0038 void localParameters(AClusters const& clusters,
0039 ALocalValues& retValues,
0040 const GeomDetUnit& gd,
0041 const LocalTrajectoryParameters& ltp) const override;
0042
0043 StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster& cl,
0044 AlgoParam const& ap) const override;
0045
0046 StripClusterParameterEstimator::LocalValues localParameters(const SiStripCluster&,
0047 const GeomDetUnit&,
0048 const LocalTrajectoryParameters&) const override;
0049
0050 float stripErrorSquared(const unsigned N, const float uProj, const SiStripDetId::SubDetector loc) const;
0051 float legacyStripErrorSquared(const unsigned N, const float uProj) const;
0052
0053 StripCPEfromTrackAngle(edm::ParameterSet& conf,
0054 const MagneticField& mag,
0055 const TrackerGeometry& geom,
0056 const SiStripLorentzAngle& lorentz,
0057 const SiStripBackPlaneCorrection& backPlaneCorrection,
0058 const SiStripConfObject& confObj,
0059 const SiStripLatency& latency);
0060 };
0061 #endif