Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:27:08

0001 #ifndef RecoMuon_MuonSeedGenerator_MuonSeedPtExtractor_H
0002 #define RecoMuon_MuonSeedGenerator_MuonSeedPtExtractor_H
0003 
0004 /** \class MuonSeedPtExtractor
0005  */
0006 
0007 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedVPtExtractor.h"
0008 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
0009 
0010 #include <map>
0011 
0012 namespace edm {
0013   class ParameterSet;
0014 }
0015 
0016 class MuonSeedPtExtractor {
0017 public:
0018   /// Constructor with Parameter set and MuonServiceProxy
0019   MuonSeedPtExtractor(const edm::ParameterSet&);
0020 
0021   /// Destructor
0022   virtual ~MuonSeedPtExtractor();
0023 
0024   /// If firstHit and secondHit are the same, it calculates the pT
0025   /// from the phi bend of the single segment
0026   virtual std::vector<double> pT_extract(MuonTransientTrackingRecHit::ConstMuonRecHitPointer firstHit,
0027                                          MuonTransientTrackingRecHit::ConstMuonRecHitPointer secondHit) const;
0028 
0029   void setBeamSpot(const GlobalVector& gv) { theBeamSpot = gv; }
0030 
0031 private:
0032   int stationCode(MuonTransientTrackingRecHit::ConstMuonRecHitPointer hit) const;
0033   // because compiler duplicaes constructors
0034   void init(const edm::ParameterSet& par);
0035   void fillParametersForCombo(const std::string& name, const edm::ParameterSet& pset);
0036   void fillScalesForCombo(const std::string& name, const edm::ParameterSet& pset);
0037 
0038   std::vector<double> getPt(const std::vector<double>& vPara, double eta, double dPhi) const;
0039 
0040   std::vector<double> getPt(const std::vector<double>& vPara,
0041                             double eta,
0042                             double dPhi,
0043                             const std::string& combination,
0044                             const DTChamberId& outerDetId) const;
0045 
0046   typedef std::map<std::string, std::vector<double> > ParametersMap;
0047   typedef std::map<std::string, std::vector<double> > ScalesMap;
0048   ParametersMap theParametersForCombo;
0049   ScalesMap theScalesForCombo;
0050   GlobalVector theBeamSpot;
0051   bool scaleDT_;
0052 };
0053 #endif