|
|
#include <CosmicMuonSeedGenerator.h>
|
bool | areCorrelated (const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const |
| check if two rechits are correlated More...
|
|
bool | checkQuality (const MuonTransientTrackingRecHit::MuonRecHitPointer &) const |
| determine if a MuonTransientTrackingRecHit is qualified to build seed More...
|
|
std::vector< TrajectorySeed > | createSeed (const MuonRecHitPair &, const edm::EventSetup &) const |
| create TrajectorySeed from MuonRecHitPair More...
|
|
std::vector< TrajectorySeed > | createSeed (const MuonTransientTrackingRecHit::MuonRecHitPointer &, const edm::EventSetup &) const |
| create TrajectorySeed from MuonTransientTrackingRecHit More...
|
|
void | createSeeds (TrajectorySeedCollection &results, const CosmicMuonSeedGenerator::MuonRecHitPairVector &hits, const edm::EventSetup &eSetup) const |
|
void | createSeeds (TrajectorySeedCollection &results, const MuonTransientTrackingRecHit::MuonRecHitContainer &hits, const edm::EventSetup &eSetup) const |
| generate TrajectorySeeds and put them into results More...
|
|
bool | leftIsBetter (const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const |
| compare quality of two rechits More...
|
|
std::vector< MuonRecHitPair > | makeSegPairs (const MuonTransientTrackingRecHit::MuonRecHitContainer &, const MuonTransientTrackingRecHit::MuonRecHitContainer &, std::string) const |
|
MuonTransientTrackingRecHit::MuonRecHitContainer | selectSegments (const MuonTransientTrackingRecHit::MuonRecHitContainer &) const |
| select seed candidates from Segments in Event More...
|
|
TrajectorySeed | tsosToSeed (const TrajectoryStateOnSurface &, uint32_t) const |
|
TrajectorySeed | tsosToSeed (const TrajectoryStateOnSurface &, uint32_t, edm::OwnVector< TrackingRecHit > &) const |
|
SeedGenerator for Cosmic Muon
- Author
- Chang Liu - Purdue University
Definition at line 35 of file CosmicMuonSeedGenerator.h.
◆ MuonRecHitPairVector
◆ CosmicMuonSeedGenerator()
◆ ~CosmicMuonSeedGenerator()
CosmicMuonSeedGenerator::~CosmicMuonSeedGenerator |
( |
| ) |
|
|
override |
◆ areCorrelated()
check if two rechits are correlated
Definition at line 369 of file CosmicMuonSeedGenerator.cc.
379 if ((deltaR<double>(
dir1.eta(),
dir1.phi(),
dir2.eta(),
dir2.phi()) < 0.1 ||
384 if ((deltaR<double>(
dir1.eta(),
dir1.phi(),
dir2.eta(),
dir2.phi()) < 0.1 ||
386 (deltaR<double>(
dir1.eta(),
dir1.phi(), dis.
eta(), dis.
phi()) < 0.1 ||
387 deltaR<double>(
dir2.eta(),
dir2.phi(), dis.
eta(), dis.
phi()) < 0.1))
390 if (fabs(
dir1.eta()) > 4.0 || fabs(
dir2.eta()) > 4.0) {
391 if ((fabs(
dir1.theta() -
dir2.theta()) < 0.07 || fabs(
dir1.theta() +
dir2.theta()) > 3.07) &&
392 (fabs(
dir1.theta() - dis.
theta()) < 0.07 || fabs(
dir1.theta() - dis.
theta()) < 0.07 ||
References L1TDiffHarvesting_cfi::dir1, L1TDiffHarvesting_cfi::dir2, PV3DBase< T, PVType, FrameType >::eta(), PV3DBase< T, PVType, FrameType >::mag(), PV3DBase< T, PVType, FrameType >::phi(), mps_fire::result, and PV3DBase< T, PVType, FrameType >::theta().
◆ checkQuality()
◆ createSeed() [1/2]
create TrajectorySeed from MuonRecHitPair
Definition at line 446 of file CosmicMuonSeedGenerator.cc.
448 std::vector<TrajectorySeed>
result;
454 float dphi =
deltaPhi((hitpair.first)->globalDirection().barePhi(), (hitpair.second)->globalDirection().barePhi());
458 map<string, float>::const_iterator iterPar =
theParameters.find(hitpair.type);
464 int charge = (dphi > 0) ? -1 : 1;
467 float paraC = (iterPar->second);
469 if (fabs(dphi) > 1
e-5) {
470 pt = paraC / fabs(dphi);
482 hit = hitpair.second;
491 hit->globalDirection().phi() > 0)
498 polar *= fabs(
pt) / polar.
perp();
504 mat =
hit->parametersError().similarityT(
hit->projectionMatrix());
506 float p_err = 0.004 / paraC;
517 LogTrace(
category) <<
"mom: " << tsos.globalMomentum() <<
" phi: " << tsos.globalMomentum().phi();
523 container.
push_back(hitpair.first->hit()->clone());
524 container.
push_back(hitpair.second->hit()->clone());
References taus_updatedMVAIds_cff::category, ALCARECOTkAlJpsiMuMu_cff::charge, MuonSubdetId::CSC, SiPixelRawToDigiRegional_cfi::deltaPhi, pat::helper::ParametrizationHelper::dimension(), MuonSubdetId::DT, MuonPatternRecoDumper::dumpMuonId(), MillePedeFileConverter_cfg::e, relativeConstraints::error, CosmicMuonSeedGenerator::MuonRecHitPair::first, LogTrace, PV3DBase< T, PVType, FrameType >::perp(), DiDispStaMuonMonitor_cfi::pt, edm::OwnVector< T, P >::push_back(), mps_fire::result, CosmicMuonSeedGenerator::MuonRecHitPair::second, AlCaHLTBitMon_QueryRunRegistry::string, submitPVValidationJobs::t, and CosmicMuonSeedGenerator::MuonRecHitPair::type.
◆ createSeed() [2/2]
create TrajectorySeed from MuonTransientTrackingRecHit
Definition at line 305 of file CosmicMuonSeedGenerator.cc.
307 std::vector<TrajectorySeed>
result;
326 hit->globalDirection().phi() > 0)
333 polar *= fabs(
pt) / polar.
perp();
343 mat =
hit->parametersError().similarityT(
hit->projectionMatrix());
355 LogTrace(
category) <<
"mom: " << tsos.globalMomentum() <<
" phi: " << tsos.globalMomentum().phi();
References taus_updatedMVAIds_cff::category, ALCARECOTkAlJpsiMuMu_cff::charge, MuonSubdetId::CSC, MuonSubdetId::DT, MuonPatternRecoDumper::dumpMuonId(), relativeConstraints::error, LogTrace, PV3DBase< T, PVType, FrameType >::perp(), DiDispStaMuonMonitor_cfi::pt, edm::OwnVector< T, P >::push_back(), mps_fire::result, and AlCaHLTBitMon_QueryRunRegistry::string.
◆ createSeeds() [1/2]
◆ createSeeds() [2/2]
◆ leftIsBetter()
◆ makeSegPairs()
◆ produce()
reconstruct muon's seeds
Definition at line 97 of file CosmicMuonSeedGenerator.cc.
100 auto output = std::make_unique<TrajectorySeedCollection>();
120 vector<MuonRecHitContainer> RHMBs;
121 vector<MuonRecHitContainer> RHMEFs;
122 vector<MuonRecHitContainer> RHMEBs;
124 stable_sort(allHits.begin(), allHits.end(), DecreasingGlobalY());
126 for (vector<const DetLayer*>::reverse_iterator icsclayer = cscForwardLayers.rbegin();
127 icsclayer != cscForwardLayers.rend() - 1;
130 allHits.insert(allHits.end(), RHMF.begin(), RHMF.end());
133 for (vector<const DetLayer*>::reverse_iterator icsclayer = cscBackwardLayers.rbegin();
134 icsclayer != cscBackwardLayers.rend() - 1;
137 allHits.insert(allHits.end(), RHMF.begin(), RHMF.end());
140 for (vector<const DetLayer*>::reverse_iterator idtlayer = dtLayers.rbegin(); idtlayer != dtLayers.rend();
143 RHMBs.push_back(RHMB);
145 if (idtlayer != dtLayers.rbegin())
146 allHits.insert(allHits.end(), RHMB.begin(), RHMB.end());
171 if (!allHits.empty()) {
175 if (goodhits.empty()) {
References taus_updatedMVAIds_cff::category, edm::EventSetup::getHandle(), LogTrace, eostools::move(), convertSQLitetoXML_cfg::output, fileCollector::seed, InitialStep_cff::seeds, and AlCaHLTBitMon_QueryRunRegistry::string.
◆ selectSegments()
◆ tsosToSeed() [1/2]
◆ tsosToSeed() [2/2]
◆ magFieldToken
◆ muonLayersToken
◆ muonMeasurements
◆ theCSCRecSegmentLabel
◆ theDTRecSegmentLabel
◆ theEnableCSCFlag
bool CosmicMuonSeedGenerator::theEnableCSCFlag |
|
private |
◆ theEnableDTFlag
bool CosmicMuonSeedGenerator::theEnableDTFlag |
|
private |
◆ theField
◆ theForcePointDownFlag
bool CosmicMuonSeedGenerator::theForcePointDownFlag |
|
private |
◆ theMaxCSCChi2
double CosmicMuonSeedGenerator::theMaxCSCChi2 |
|
private |
◆ theMaxDTChi2
double CosmicMuonSeedGenerator::theMaxDTChi2 |
|
private |
◆ theMaxSeeds
unsigned int CosmicMuonSeedGenerator::theMaxSeeds |
|
private |
◆ theMuonLayers
◆ theParameters
std::map<std::string, float> CosmicMuonSeedGenerator::theParameters |
|
private |
edm::InputTag theDTRecSegmentLabel
the name of the DT rec hits collection
uint32_t dimension(pat::CandKinResolution::Parametrization parametrization)
Returns the number of free parameters in a parametrization (3 or 4)
bool theForcePointDownFlag
std::vector< TrajectorySeed > TrajectorySeedCollection
edm::ESGetToken< MuonDetLayerGeometry, MuonRecoGeometryRecord > muonLayersToken
MuonTransientTrackingRecHit::MuonRecHitContainer MuonRecHitContainer
std::string dumpMuonId(const DetId &id) const
Geom::Theta< T > theta() const
const std::vector< const DetLayer * > & allDTLayers() const
return the DT DetLayers (barrel), inside-out
edm::ESHandle< MagneticField > theField
edm::ESHandle< MuonDetLayerGeometry > theMuonLayers
const std::vector< const DetLayer * > & backwardCSCLayers() const
return the backward (-Z) CSC DetLayers, inside-out
std::vector< MuonRecHitPair > makeSegPairs(const MuonTransientTrackingRecHit::MuonRecHitContainer &, const MuonTransientTrackingRecHit::MuonRecHitContainer &, std::string) const
unsigned int theMaxSeeds
the maximum number of Seeds
void setEvent(const edm::Event &)
set event
std::shared_ptr< MuonTransientTrackingRecHit > MuonRecHitPointer
CLHEP::HepVector AlgebraicVector
edm::InputTag theCSCRecSegmentLabel
the name of the CSC rec hits collection
TrajectorySeed tsosToSeed(const TrajectoryStateOnSurface &, uint32_t) const
const std::vector< const DetLayer * > & forwardCSCLayers() const
return the forward (+Z) CSC DetLayers, inside-out
MuonTransientTrackingRecHit::MuonRecHitContainer selectSegments(const MuonTransientTrackingRecHit::MuonRecHitContainer &) const
select seed candidates from Segments in Event
void createSeeds(TrajectorySeedCollection &results, const MuonTransientTrackingRecHit::MuonRecHitContainer &hits, const edm::EventSetup &eSetup) const
generate TrajectorySeeds and put them into results
bool areCorrelated(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
check if two rechits are correlated
MuonDetLayerMeasurements * muonMeasurements
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken
CLHEP::HepSymMatrix AlgebraicSymMatrix
bool theEnableCSCFlag
enable CSCSegment Flag
MuonRecHitContainer recHits(const DetLayer *layer, const edm::Event &iEvent)
returns the rechits which are on the layer
bool leftIsBetter(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
compare quality of two rechits
bool checkQuality(const MuonTransientTrackingRecHit::MuonRecHitPointer &) const
determine if a MuonTransientTrackingRecHit is qualified to build seed
std::map< std::string, float > theParameters
std::vector< TrajectorySeed > createSeed(const MuonTransientTrackingRecHit::MuonRecHitPointer &, const edm::EventSetup &) const
create TrajectorySeed from MuonTransientTrackingRecHit
double theMaxDTChi2
the maximum chi2 required for dt and csc rechits
bool theEnableDTFlag
enable DT Segment Flag
std::vector< MuonRecHitPair > MuonRecHitPairVector
Geom::Phi< T > phi() const