#include <MuonSeedBuilder.h>
Public Types | |
typedef std::deque< bool > | BoolContainer |
typedef MuonTransientTrackingRecHit::MuonRecHitContainer | SegmentContainer |
Public Member Functions | |
int | build (edm::Event &event, const edm::EventSetup &eventSetup, TrajectorySeedCollection &seeds) |
Build seed collection. More... | |
MuonSeedBuilder (const edm::ParameterSet &, edm::ConsumesCollector &) | |
Constructor. More... | |
void | setBField (const MagneticField *theField) |
Cache pointer to Magnetic field. More... | |
void | setGeometry (const MuonDetLayerGeometry *lgeom) |
Cache pointer to geometry. More... | |
~MuonSeedBuilder () | |
Destructor. More... | |
Public Attributes | |
std::vector< int > | badSeedLayer |
Private Member Functions | |
double | etaError (const GlobalPoint gp, double rErr) |
calculate the eta error from global R error More... | |
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. More... | |
bool | IdentifyShowering (SegmentContainer &segs, BoolContainer &usedSeg, float &eta_last, float &phi_last, int layer, int &NShoweringSegments) |
identify the showering layer More... | |
std::vector< TrajectorySeed > | seedCleaner (const edm::EventSetup &eventSetup, std::vector< TrajectorySeed > &seeds) |
cleaning the seeds More... | |
Private Attributes | |
const MagneticField * | BField |
bool | debug |
group the seeds More... | |
bool | enableCSCMeasurement |
bool | enableDTMeasurement |
float | maxDeltaEtaCSC |
float | maxDeltaEtaDT |
float | maxDeltaEtaOverlap |
float | maxDeltaPhiCSC |
float | maxDeltaPhiDT |
float | maxDeltaPhiOverlap |
float | maxEtaResolutionCSC |
float | maxEtaResolutionDT |
float | maxPhiResolutionCSC |
float | maxPhiResolutionDT |
int | minCSCHitsPerSegment |
int | minDTHitsPerSegment |
const MuonDetLayerGeometry * | muonLayers |
MuonDetLayerMeasurements * | muonMeasurements |
MuonSeedCleaner * | muonSeedClean_ |
MuonSeedCreator * | muonSeedCreate_ |
Create seed according to region (CSC, DT, Overlap) More... | |
int | NShowerSeg |
std::vector< int > | ShoweringLayers |
SegmentContainer | ShoweringSegments |
edm::InputTag | theCSCSegmentLabel |
Name of the CSC segment collection. More... | |
edm::InputTag | theDTSegmentLabel |
Name of the DT segment collection. More... | |
float | theMinMomentum |
MuonServiceProxy * | theService |
Algorith to build TrajectorySeed for muon standalone reconstruction. The segments are sorted out to make a protoTrack (vector of matching segments in different stations a.k.a. layers), for DT+overlap and CSC regions, in that order. The protoTrack is then passed to the seed creator to create CSC, overlap and/or DT seeds.
Definition at line 33 of file MuonSeedBuilder.h.
typedef std::deque<bool> MuonSeedBuilder::BoolContainer |
Definition at line 39 of file MuonSeedBuilder.h.
Definition at line 38 of file MuonSeedBuilder.h.
|
explicit |
Constructor.
See header file for a description of this class.
Definition at line 52 of file MuonSeedBuilder.cc.
References debug, enableCSCMeasurement, enableDTMeasurement, edm::ParameterSet::getParameter(), maxDeltaEtaCSC, maxDeltaEtaDT, maxDeltaEtaOverlap, maxDeltaPhiCSC, maxDeltaPhiDT, maxDeltaPhiOverlap, maxEtaResolutionCSC, maxEtaResolutionDT, maxPhiResolutionCSC, maxPhiResolutionDT, minCSCHitsPerSegment, minDTHitsPerSegment, muonMeasurements, muonSeedClean_, muonSeedCreate_, MuonServiceProxy_cff::MuonServiceProxy, theCSCSegmentLabel, theDTSegmentLabel, and theService.
MuonSeedBuilder::~MuonSeedBuilder | ( | ) |
Destructor.
Definition at line 104 of file MuonSeedBuilder.cc.
References muonMeasurements, muonSeedClean_, muonSeedCreate_, and theService.
int MuonSeedBuilder::build | ( | edm::Event & | event, |
const edm::EventSetup & | eventSetup, | ||
TrajectorySeedCollection & | seeds | ||
) |
Build seed collection.
Definition at line 121 of file MuonSeedBuilder.cc.
References MuonDetLayerGeometry::allDTLayers(), MuonDetLayerGeometry::backwardCSCLayers(), BField, gather_cfg::cout, MuonSeedCreator::createSeed(), debug, PV3DBase< T, PVType, FrameType >::eta(), MuonDetLayerGeometry::forwardCSCLayers(), foundMatchingSegment(), i, IdentifyShowering(), cmsHarvester::index, LayerTriplets::layers(), minCSCHitsPerSegment, minDTHitsPerSegment, muonLayers, muonMeasurements, muonSeedClean_, muonSeedCreate_, NShowerSeg, PV3DBase< T, PVType, FrameType >::phi(), MuonDetLayerMeasurements::recHits(), MuonSeedCleaner::seedCleaner(), MuonSeedCreator::setBField(), ShoweringLayers, ShoweringSegments, and funct::true.
Referenced by MuonSeedProducer::produce().
|
private |
calculate the eta error from global R error
Definition at line 1280 of file MuonSeedBuilder.cc.
References PV3DBase< T, PVType, FrameType >::mag(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), and PV3DBase< T, PVType, FrameType >::z().
|
private |
Find segment which matches protoTrack for endcap only.
segment for seeding , segments collection
reject possible edge segments
Definition at line 1090 of file MuonSeedBuilder.cc.
References case1, case2, cuy::dh, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, PV3DBase< T, PVType, FrameType >::eta(), edm::false, IdentifyShowering(), cmsHarvester::index, maxDeltaEtaCSC, maxDeltaEtaDT, maxDeltaEtaOverlap, maxDeltaPhiCSC, maxDeltaPhiDT, maxDeltaPhiOverlap, minCSCHitsPerSegment, minDTHitsPerSegment, muonSeedClean_, MuonSeedCleaner::NRecHitsFromSegment(), NShowerSeg, convertSQLiteXML::ok, PV3DBase< T, PVType, FrameType >::phi(), and mathSSE::sqrt().
Referenced by build().
|
private |
identify the showering layer
Definition at line 1211 of file MuonSeedBuilder.cc.
References cuy::dh, PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, MuonSubdetId::DT, PV3DBase< T, PVType, FrameType >::eta(), edm::false, cmsHarvester::index, GeomDetEnumerators::isDT(), muonSeedClean_, MuonSeedCleaner::NRecHitsFromSegment(), PV3DBase< T, PVType, FrameType >::phi(), ShoweringLayers, ShoweringSegments, mathSSE::sqrt(), DetId::subdetId(), and funct::true.
Referenced by build(), and foundMatchingSegment().
|
private |
cleaning the seeds
|
inline |
Cache pointer to Magnetic field.
Definition at line 53 of file MuonSeedBuilder.h.
References BField.
Referenced by MuonSeedProducer::produce().
|
inline |
Cache pointer to geometry.
Definition at line 50 of file MuonSeedBuilder.h.
References muonLayers.
Referenced by MuonSeedProducer::produce().
std::vector<int> MuonSeedBuilder::badSeedLayer |
Definition at line 58 of file MuonSeedBuilder.h.
|
private |
Definition at line 145 of file MuonSeedBuilder.h.
Referenced by build(), and setBField().
|
private |
group the seeds
pick the seed by better parameter error filter out the bad pt seeds, if all are bad pt seeds then keep all collect long seeds pick the seeds w/ 1st layer information and w/ more than 1 segments check overlapping segment for seeds retrieve number of rechits& normalized chi2 of associated segments of a seed retrieve seed global position retrieve seed global momentum
Definition at line 105 of file MuonSeedBuilder.h.
Referenced by build(), and MuonSeedBuilder().
|
private |
Definition at line 111 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 108 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 120 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 124 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 122 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 121 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 125 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 123 of file MuonSeedBuilder.h.
Referenced by foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 153 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 152 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 155 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 154 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 114 of file MuonSeedBuilder.h.
Referenced by build(), foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 117 of file MuonSeedBuilder.h.
Referenced by build(), foundMatchingSegment(), and MuonSeedBuilder().
|
private |
Definition at line 142 of file MuonSeedBuilder.h.
Referenced by build(), and setGeometry().
|
private |
Definition at line 158 of file MuonSeedBuilder.h.
Referenced by build(), MuonSeedBuilder(), and ~MuonSeedBuilder().
|
private |
Definition at line 139 of file MuonSeedBuilder.h.
Referenced by build(), foundMatchingSegment(), IdentifyShowering(), MuonSeedBuilder(), and ~MuonSeedBuilder().
|
private |
Create seed according to region (CSC, DT, Overlap)
Definition at line 138 of file MuonSeedBuilder.h.
Referenced by build(), MuonSeedBuilder(), and ~MuonSeedBuilder().
|
private |
Definition at line 128 of file MuonSeedBuilder.h.
Referenced by build(), and foundMatchingSegment().
|
private |
Definition at line 130 of file MuonSeedBuilder.h.
Referenced by build(), and IdentifyShowering().
|
private |
Definition at line 129 of file MuonSeedBuilder.h.
Referenced by build(), and IdentifyShowering().
|
private |
Name of the CSC segment collection.
Definition at line 135 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Name of the DT segment collection.
Definition at line 132 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder().
|
private |
Definition at line 156 of file MuonSeedBuilder.h.
|
private |
Definition at line 148 of file MuonSeedBuilder.h.
Referenced by MuonSeedBuilder(), and ~MuonSeedBuilder().