CMS 3D CMS Logo

CosmicMuonSeedGenerator.h
Go to the documentation of this file.
1 #ifndef MuonSeedGenerator_CosmicMuonSeedGenerator_H
2 #define MuonSeedGenerator_CosmicMuonSeedGenerator_H
3 
14 
22 
23 #include <vector>
24 
26 
28 
29 namespace edm {
30  class ParameterSet;
31  class Event;
32  class EventSetup;
33 } // namespace edm
34 
36 public:
39 
41  ~CosmicMuonSeedGenerator() override;
42 
43  // Operations
44 
46  void produce(edm::Event&, const edm::EventSetup&) override;
47 
48 private:
49  struct MuonRecHitPair {
52  std::string c = "")
53  : first(a), second(b), type(c) {}
54 
58  };
59 
60  typedef std::vector<MuonRecHitPair> MuonRecHitPairVector;
61 
65  const edm::EventSetup& eSetup) const;
66 
69  const edm::EventSetup& eSetup) const;
70 
73 
77 
79  std::vector<TrajectorySeed> createSeed(const MuonTransientTrackingRecHit::MuonRecHitPointer&,
80  const edm::EventSetup&) const;
81 
82  std::vector<MuonRecHitPair> makeSegPairs(const MuonTransientTrackingRecHit::MuonRecHitContainer&,
84  std::string) const;
85 
87  std::vector<TrajectorySeed> createSeed(const MuonRecHitPair&, const edm::EventSetup&) const;
88 
89  TrajectorySeed tsosToSeed(const TrajectoryStateOnSurface&, uint32_t) const;
91 
95 
99 
103  return lhs->globalPosition().y() > rhs->globalPosition().y();
104  }
105  };
106 
107 private:
110 
113 
116 
119 
121  unsigned int theMaxSeeds;
122 
124  double theMaxDTChi2;
131 
132  std::map<std::string, float> theParameters;
133 
135 };
136 #endif
edm::ESHandle< MagneticField > theField
unsigned int theMaxSeeds
the maximum number of Seeds
MuonTransientTrackingRecHit::MuonRecHitPointer first
double theMaxDTChi2
the maximum chi2 required for dt and csc rechits
bool checkQuality(const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
determine if a MuonTransientTrackingRecHit is qualified to build seed
edm::InputTag theDTRecSegmentLabel
the name of the DT rec hits collection
std::vector< MuonRecHitPair > makeSegPairs(const MuonTransientTrackingRecHit::MuonRecHitContainer &, const MuonTransientTrackingRecHit::MuonRecHitContainer &, std::string) const
TrajectorySeed tsosToSeed(const TrajectoryStateOnSurface &, uint32_t) const
std::vector< TrajectorySeed > TrajectorySeedCollection
std::shared_ptr< MuonTransientTrackingRecHit > MuonRecHitPointer
MuonTransientTrackingRecHit::MuonRecHitContainer selectSegments(const MuonTransientTrackingRecHit::MuonRecHitContainer &) const
select seed candidates from Segments in Event
edm::ESHandle< MuonDetLayerGeometry > theMuonLayers
std::map< std::string, float > theParameters
std::vector< TrajectorySeed > createSeed(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const edm::EventSetup &) const
create TrajectorySeed from MuonTransientTrackingRecHit
std::vector< MuonRecHitPair > MuonRecHitPairVector
edm::ESGetToken< MuonDetLayerGeometry, MuonRecoGeometryRecord > muonLayersToken
MuonDetLayerMeasurements * muonMeasurements
bool theEnableCSCFlag
enable CSCSegment Flag
double b
Definition: hdecay.h:118
bool theEnableDTFlag
enable DT Segment Flag
edm::InputTag theCSCRecSegmentLabel
the name of the CSC rec hits collection
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken
MuonTransientTrackingRecHit::MuonRecHitPointer second
bool operator()(const MuonTransientTrackingRecHit::ConstMuonRecHitPointer &lhs, const MuonTransientTrackingRecHit::ConstMuonRecHitPointer &rhs) const
~CosmicMuonSeedGenerator() override
Destructor.
MuonRecHitPair(const MuonTransientTrackingRecHit::MuonRecHitPointer &a, const MuonTransientTrackingRecHit::MuonRecHitPointer &b, std::string c="")
HLT enums.
double a
Definition: hdecay.h:119
bool leftIsBetter(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
compare quality of two rechits
void produce(edm::Event &, const edm::EventSetup &) override
reconstruct muon&#39;s seeds
std::shared_ptr< MuonTransientTrackingRecHit const > ConstMuonRecHitPointer
bool areCorrelated(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
check if two rechits are correlated
std::vector< MuonRecHitPointer > MuonRecHitContainer
void createSeeds(TrajectorySeedCollection &results, const MuonTransientTrackingRecHit::MuonRecHitContainer &hits, const edm::EventSetup &eSetup) const
generate TrajectorySeeds and put them into results
CosmicMuonSeedGenerator(const edm::ParameterSet &)
Constructor.