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