Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RecoMuon_MuonSeedGenerator_MuonSeedFinder_H
0002 #define RecoMuon_MuonSeedGenerator_MuonSeedFinder_H
0003 
0004 /** \class MuonSeedFinder
0005  *  
0006  *  Uses SteppingHelixPropagator
0007  *
0008  *  \author A. Vitelli - INFN Torino
0009  *  \author porting R. Bellan - INFN Torino
0010  *
0011  *  
0012  */
0013 
0014 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedVFinder.h"
0015 #include "RecoMuon/MuonSeedGenerator/src/MuonSeedPtExtractor.h"
0016 #include "RecoMuon/MuonSeedGenerator/src/MuonCSCSeedFromRecHits.h"
0017 #include "RecoMuon/MuonSeedGenerator/src/MuonDTSeedFromRecHits.h"
0018 #include "RecoMuon/MuonSeedGenerator/src/MuonOverlapSeedFromRecHits.h"
0019 
0020 #include <vector>
0021 
0022 class MuonSeedFinder : public MuonSeedVFinder {
0023 public:
0024   /// Constructor
0025   MuonSeedFinder(const edm::ParameterSet &pset);
0026 
0027   /// Destructor
0028   ~MuonSeedFinder() override { delete thePtExtractor; }
0029 
0030   // Operations
0031 
0032   void setBField(const MagneticField *field) override;
0033 
0034   void seeds(const MuonTransientTrackingRecHit::MuonRecHitContainer &hits,
0035              std::vector<TrajectorySeed> &result) override;
0036 
0037 private:
0038   float computePt(MuonTransientTrackingRecHit::ConstMuonRecHitPointer muon, const MagneticField *field) const;
0039 
0040   void analyze() const;
0041   // put a parameterSet instead of
0042   // static SimpleConfigurable<float> theMinMomentum;
0043   float theMinMomentum;
0044   const MagneticField *theField;
0045 
0046   MuonDTSeedFromRecHits theBarrel;
0047   MuonOverlapSeedFromRecHits theOverlap;
0048   MuonCSCSeedFromRecHits theEndcap;
0049 };
0050 #endif