Back to home page

Project CMSSW displayed by LXR

 
 

    


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