CMS 3D CMS Logo

CosmicMuonSeedGenerator.h
Go to the documentation of this file.
1 #ifndef MuonSeedGenerator_CosmicMuonSeedGenerator_H
2 #define MuonSeedGenerator_CosmicMuonSeedGenerator_H
3 
13 
17 
18 #include <vector>
19 
21 
23 
24 namespace edm {
25  class ParameterSet;
26  class Event;
27  class EventSetup;
28 } // namespace edm
29 
31 public:
34 
36  ~CosmicMuonSeedGenerator() override;
37 
38  // Operations
39 
41  void produce(edm::Event&, const edm::EventSetup&) override;
42 
43 private:
44  struct MuonRecHitPair {
47  std::string c = "")
48  : first(a), second(b), type(c) {}
49 
53  };
54 
55  typedef std::vector<MuonRecHitPair> MuonRecHitPairVector;
56 
58  void createSeeds(TrajectorySeedCollection& results,
60  const edm::EventSetup& eSetup) const;
61 
62  void createSeeds(TrajectorySeedCollection& results,
64  const edm::EventSetup& eSetup) const;
65 
67  bool checkQuality(const MuonTransientTrackingRecHit::MuonRecHitPointer&) const;
68 
72 
74  std::vector<TrajectorySeed> createSeed(const MuonTransientTrackingRecHit::MuonRecHitPointer&,
75  const edm::EventSetup&) const;
76 
77  std::vector<MuonRecHitPair> makeSegPairs(const MuonTransientTrackingRecHit::MuonRecHitContainer&,
79  std::string) const;
80 
82  std::vector<TrajectorySeed> createSeed(const MuonRecHitPair&, const edm::EventSetup&) const;
83 
84  TrajectorySeed tsosToSeed(const TrajectoryStateOnSurface&, uint32_t) const;
85  TrajectorySeed tsosToSeed(const TrajectoryStateOnSurface&, uint32_t, edm::OwnVector<TrackingRecHit>&) const;
86 
88  bool areCorrelated(const MuonTransientTrackingRecHit::MuonRecHitPointer&,
90 
92  bool leftIsBetter(const MuonTransientTrackingRecHit::MuonRecHitPointer&,
94 
98  return lhs->globalPosition().y() > rhs->globalPosition().y();
99  }
100  };
101 
102 private:
105 
108 
111 
114 
116  unsigned int theMaxSeeds;
117 
119  double theMaxDTChi2;
124 
125  std::map<std::string, float> theParameters;
126 
128 };
129 #endif
type
Definition: HCALResponse.h:21
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
U second(std::pair< T, U > const &p)
edm::InputTag theDTRecSegmentLabel
the name of the DT rec hits collection
std::vector< TrajectorySeed > TrajectorySeedCollection
std::shared_ptr< MuonTransientTrackingRecHit > MuonRecHitPointer
edm::ESHandle< MuonDetLayerGeometry > theMuonLayers
std::map< std::string, float > theParameters
std::vector< MuonRecHitPair > MuonRecHitPairVector
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
MuonTransientTrackingRecHit::MuonRecHitPointer second
bool operator()(const MuonTransientTrackingRecHit::ConstMuonRecHitPointer &lhs, const MuonTransientTrackingRecHit::ConstMuonRecHitPointer &rhs) const
MuonRecHitPair(const MuonTransientTrackingRecHit::MuonRecHitPointer &a, const MuonTransientTrackingRecHit::MuonRecHitPointer &b, std::string c="")
HLT enums.
double a
Definition: hdecay.h:119
std::shared_ptr< MuonTransientTrackingRecHit const > ConstMuonRecHitPointer
T first(std::pair< T, U > const &p)
std::vector< MuonRecHitPointer > MuonRecHitContainer