File indexing completed on 2025-01-21 01:40:02
0001 #ifndef RecoLocalTracker_Phase2TrackerRecHits_Phase2StripCPE_H
0002 #define RecoLocalTracker_Phase2TrackerRecHits_Phase2StripCPE_H
0003
0004 #include "CondFormats/SiPhase2TrackerObjects/interface/SiPhase2OuterTrackerLorentzAngle.h"
0005 #include "DataFormats/Phase2TrackerCluster/interface/Phase2TrackerCluster1D.h"
0006 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0009 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0010 #include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h"
0011 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0012 #include "MagneticField/Engine/interface/MagneticField.h"
0013 #include "RecoLocalTracker/ClusterParameterEstimator/interface/ClusterParameterEstimator.h"
0014
0015 class Phase2StripCPE final : public ClusterParameterEstimator<Phase2TrackerCluster1D> {
0016 public:
0017
0018 using Phase2TrackerGeomDetUnit = PixelGeomDetUnit;
0019 using Phase2TrackerTopology = PixelTopology;
0020
0021 struct Param {
0022 Param() : topology(nullptr) {}
0023 Phase2TrackerTopology const* topology;
0024 LocalError localErr;
0025 float coveredStrips;
0026 };
0027
0028 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0029
0030 public:
0031 Phase2StripCPE(edm::ParameterSet& conf,
0032 const MagneticField&,
0033 const TrackerGeometry&,
0034 const SiPhase2OuterTrackerLorentzAngle&);
0035 LocalValues localParameters(const Phase2TrackerCluster1D& cluster, const GeomDetUnit& det) const override;
0036 LocalVector driftDirection(const Phase2TrackerGeomDetUnit& det) const;
0037
0038 private:
0039 void fillParam();
0040 std::vector<Param> m_Params;
0041
0042 const MagneticField& magfield_;
0043 const TrackerGeometry& geom_;
0044 const SiPhase2OuterTrackerLorentzAngle& lorentzAngleMap_;
0045
0046 float tanLorentzAnglePerTesla_;
0047 unsigned int m_off;
0048
0049 bool use_LorentzAngle_DB_;
0050 };
0051
0052 #endif