CMS 3D CMS Logo

MuonSeedBuilder.h
Go to the documentation of this file.
1 #ifndef RecoMuon_MuonSeedBuilder_H
2 #define RecoMuon_MuonSeedBuilder_H
3 
19 
20 #include <vector>
21 
22 class DetLayer;
24 class MagneticField;
25 class MuonSeedCreator;
27 
28 typedef std::vector<TrajectorySeed> SeedContainer;
29 
31 public:
33  typedef std::deque<bool> BoolContainer;
34 
37 
40 
41  // Operations
42 
44  void setGeometry(const MuonDetLayerGeometry* lgeom) { muonLayers = lgeom; }
45 
47  void setBField(const MagneticField* theField) { BField = theField; }
48 
51 
52  std::vector<int> badSeedLayer;
53 
54 private:
56  bool foundMatchingSegment(int type,
57  SegmentContainer& protoTrack,
58  SegmentContainer& segments,
59  BoolContainer& usedSeg,
60  float& eta_temp,
61  float& phi_temp,
62  int& lastLayer,
63  bool& showeringBefore);
64 
66  std::vector<TrajectorySeed> seedCleaner(const edm::EventSetup& eventSetup, std::vector<TrajectorySeed>& seeds);
67 
69  double etaError(const GlobalPoint gp, double rErr);
70 
73  BoolContainer& usedSeg,
74  float& eta_last,
75  float& phi_last,
76  int layer,
77  int& NShoweringSegments);
78 
80  //std::vector<SeedContainer> GroupSeeds( std::vector<TrajectorySeed>& seeds );
82  //TrajectorySeed BetterDirection( std::vector<TrajectorySeed>& seeds ) ;
83  //TrajectorySeed BetterChi2( std::vector<TrajectorySeed>& seeds );
85  //bool MomentumFilter(std::vector<TrajectorySeed>& seeds );
86 
88  //SeedContainer LengthFilter(std::vector<TrajectorySeed>& seeds );
90  //SeedContainer SeedCandidates( std::vector<TrajectorySeed>& seeds, bool good );
92  //unsigned int OverlapSegments( TrajectorySeed seed1, TrajectorySeed seed2 );
93 
95  //int NRecHitsFromSegment( const TrackingRecHit& rhit );
96  //int NRecHitsFromSegment( MuonTransientTrackingRecHit *rhit );
97  //int NRecHitsFromSegment( const MuonTransientTrackingRecHit& rhit );
98  //double NChi2OfSegment( const TrackingRecHit& rhit );
99 
101  //GlobalPoint SeedPosition( TrajectorySeed seed );
103  //GlobalVector SeedMomentum( TrajectorySeed seed );
104 
105  // This Producer private debug flag
106  bool debug;
107 
108  // Enable the DT measurement
110 
111  // Enable the CSC measurement
113 
114  // Minimum # of hits to consider a CSC Segment;
116 
117  // Minimum # of hits to consider a DT Segment;
119 
120  // Maximum distance from initial segment
127 
128  // Number of Segments from a shower
131  std::vector<int> ShoweringLayers;
134 
137 
141 
142  // Cache geometry for current event
144 
145  // Cache Magnetic Field for current event
147 
148  // Minimum separation when we can distinguish between 2 muon seeds
149  // (to suppress combinatorics)
155 
157 };
158 #endif
MuonSeedBuilder::etaError
double etaError(const GlobalPoint gp, double rErr)
calculate the eta error from global R error
Definition: MuonSeedBuilder.cc:1457
MuonSeedBuilder::foundMatchingSegment
bool foundMatchingSegment(int type, SegmentContainer &protoTrack, SegmentContainer &segments, BoolContainer &usedSeg, float &eta_temp, float &phi_temp, int &lastLayer, bool &showeringBefore)
Find segment which matches protoTrack for endcap only.
Definition: MuonSeedBuilder.cc:1235
MuonSeedBuilder::ShoweringSegments
SegmentContainer ShoweringSegments
Definition: MuonSeedBuilder.h:130
MuonSeedBuilder::NShowerSeg
int NShowerSeg
Definition: MuonSeedBuilder.h:129
MuonSeedBuilder::maxDeltaEtaCSC
float maxDeltaEtaCSC
Definition: MuonSeedBuilder.h:121
MuonSeedBuilder::enableDTMeasurement
bool enableDTMeasurement
Definition: MuonSeedBuilder.h:109
MuonSeedBuilder::seedCleaner
std::vector< TrajectorySeed > seedCleaner(const edm::EventSetup &eventSetup, std::vector< TrajectorySeed > &seeds)
cleaning the seeds
TrajectorySeedCollection
std::vector< TrajectorySeed > TrajectorySeedCollection
Definition: TrajectorySeedCollection.h:6
MuonSeedBuilder::maxDeltaPhiOverlap
float maxDeltaPhiOverlap
Definition: MuonSeedBuilder.h:124
DetLayer
Definition: DetLayer.h:21
MuonSeedBuilder::ShoweringLayers
std::vector< int > ShoweringLayers
Definition: MuonSeedBuilder.h:131
MuonDetLayerMeasurements
Definition: MuonDetLayerMeasurements.h:41
MuonTransientTrackingRecHit::MuonRecHitContainer
std::vector< MuonRecHitPointer > MuonRecHitContainer
Definition: MuonTransientTrackingRecHit.h:26
MuonSeedBuilder::enableCSCMeasurement
bool enableCSCMeasurement
Definition: MuonSeedBuilder.h:112
MuonSeedBuilder::BoolContainer
std::deque< bool > BoolContainer
Definition: MuonSeedBuilder.h:33
MuonSeedBuilder::SegmentContainer
MuonTransientTrackingRecHit::MuonRecHitContainer SegmentContainer
Definition: MuonSeedBuilder.h:32
MuonSeedBuilder::muonSeedClean_
MuonSeedCleaner * muonSeedClean_
Definition: MuonSeedBuilder.h:140
MuonSeedBuilder::setGeometry
void setGeometry(const MuonDetLayerGeometry *lgeom)
Cache pointer to geometry.
Definition: MuonSeedBuilder.h:44
MuonSeedBuilder::maxDeltaEtaDT
float maxDeltaEtaDT
Definition: MuonSeedBuilder.h:125
MuonSeedBuilder::theCSCSegmentLabel
edm::InputTag theCSCSegmentLabel
Name of the CSC segment collection.
Definition: MuonSeedBuilder.h:136
MuonSeedBuilder::maxDeltaPhiCSC
float maxDeltaPhiCSC
Definition: MuonSeedBuilder.h:122
MuonSeedBuilder::maxEtaResolutionDT
float maxEtaResolutionDT
Definition: MuonSeedBuilder.h:150
MuonSeedBuilder::maxDeltaPhiDT
float maxDeltaPhiDT
Definition: MuonSeedBuilder.h:126
MuonDetLayerGeometry
Definition: MuonDetLayerGeometry.h:21
MuonSeedBuilder
Definition: MuonSeedBuilder.h:30
MuonSeedBuilder::setBField
void setBField(const MagneticField *theField)
Cache pointer to Magnetic field.
Definition: MuonSeedBuilder.h:47
SeedContainer
std::vector< TrajectorySeed > SeedContainer
Definition: MuonSeedBuilder.h:26
MuonSeedBuilder::maxPhiResolutionCSC
float maxPhiResolutionCSC
Definition: MuonSeedBuilder.h:153
Point3DBase< float, GlobalTag >
MuonSeedBuilder::muonMeasurements
MuonDetLayerMeasurements * muonMeasurements
Definition: MuonSeedBuilder.h:156
MuonSeedBuilder::theDTSegmentLabel
edm::InputTag theDTSegmentLabel
Name of the DT segment collection.
Definition: MuonSeedBuilder.h:133
MuonSeedBuilder::~MuonSeedBuilder
~MuonSeedBuilder()
Destructor.
Definition: MuonSeedBuilder.cc:104
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
InitialStep_cff.seeds
seeds
Definition: InitialStep_cff.py:231
MuonSeedBuilder::debug
bool debug
group the seeds
Definition: MuonSeedBuilder.h:106
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
MuonSeedBuilder::muonLayers
const MuonDetLayerGeometry * muonLayers
Definition: MuonSeedBuilder.h:143
edm::ParameterSet
Definition: ParameterSet.h:47
MuonSeedBuilder::MuonSeedBuilder
MuonSeedBuilder(const edm::ParameterSet &, edm::ConsumesCollector &)
Constructor.
Definition: MuonSeedBuilder.cc:51
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
MuonSeedBuilder::minDTHitsPerSegment
int minDTHitsPerSegment
Definition: MuonSeedBuilder.h:118
MuonSeedCleaner
Definition: MuonSeedCleaner.h:28
MuonSeedBuilder::badSeedLayer
std::vector< int > badSeedLayer
Definition: MuonSeedBuilder.h:52
MuonSeedBuilder::IdentifyShowering
bool IdentifyShowering(SegmentContainer &segs, BoolContainer &usedSeg, float &eta_last, float &phi_last, int layer, int &NShoweringSegments)
identify the showering layer
Definition: MuonSeedBuilder.cc:1380
edm::EventSetup
Definition: EventSetup.h:58
MuonSeedBuilder::maxEtaResolutionCSC
float maxEtaResolutionCSC
Definition: MuonSeedBuilder.h:151
MuonSeedBuilder::minCSCHitsPerSegment
int minCSCHitsPerSegment
Definition: MuonSeedBuilder.h:115
MuonSeedBuilder::maxDeltaEtaOverlap
float maxDeltaEtaOverlap
Definition: MuonSeedBuilder.h:123
TrajectorySeedCollection.h
MuonSeedBuilder::BField
const MagneticField * BField
Definition: MuonSeedBuilder.h:146
MuonSeedCreator
Definition: MuonSeedCreator.h:30
MuonSeedBuilder::maxPhiResolutionDT
float maxPhiResolutionDT
Definition: MuonSeedBuilder.h:152
MuonDetLayerMeasurements.h
ConsumesCollector.h
MuonSeedBuilder::build
int build(edm::Event &event, const edm::EventSetup &eventSetup, TrajectorySeedCollection &seeds)
Build seed collection.
Definition: MuonSeedBuilder.cc:119
ParameterSet.h
event
Definition: event.py:1
edm::Event
Definition: Event.h:73
MagneticField
Definition: MagneticField.h:19
MuonSeedBuilder::muonSeedCreate_
MuonSeedCreator * muonSeedCreate_
Create seed according to region (CSC, DT, Overlap)
Definition: MuonSeedBuilder.h:139
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
MuonSeedBuilder::theMinMomentum
float theMinMomentum
Definition: MuonSeedBuilder.h:154