Back to home page

Project CMSSW displayed by LXR

 
 

    


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

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   // currently (?) use Pixel classes for GeomDetUnit and Topology
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