|
![CMS Logo](/cmsdoxygen/common/rightImage.jpg) |
#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 30 of file CosmicMuonSeedGenerator.h.
◆ MuonRecHitPairVector
◆ CosmicMuonSeedGenerator()
◆ ~CosmicMuonSeedGenerator()
CosmicMuonSeedGenerator::~CosmicMuonSeedGenerator |
( |
| ) |
|
|
override |
◆ areCorrelated()
check if two rechits are correlated
Definition at line 372 of file CosmicMuonSeedGenerator.cc.
382 if ((deltaR<double>(
dir1.eta(),
dir1.phi(),
dir2.eta(),
dir2.phi()) < 0.1 ||
387 if ((deltaR<double>(
dir1.eta(),
dir1.phi(),
dir2.eta(),
dir2.phi()) < 0.1 ||
389 (deltaR<double>(
dir1.eta(),
dir1.phi(), dis.
eta(), dis.
phi()) < 0.1 ||
390 deltaR<double>(
dir2.eta(),
dir2.phi(), dis.
eta(), dis.
phi()) < 0.1))
393 if (fabs(
dir1.eta()) > 4.0 || fabs(
dir2.eta()) > 4.0) {
394 if ((fabs(
dir1.theta() -
dir2.theta()) < 0.07 || fabs(
dir1.theta() +
dir2.theta()) > 3.07) &&
395 (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 449 of file CosmicMuonSeedGenerator.cc.
451 std::vector<TrajectorySeed>
result;
457 float dphi =
deltaPhi((hitpair.first)->globalDirection().barePhi(), (hitpair.second)->globalDirection().barePhi());
461 map<string, float>::const_iterator iterPar =
theParameters.find(hitpair.type);
467 int charge = (dphi > 0) ? -1 : 1;
470 float paraC = (iterPar->second);
472 if (fabs(dphi) > 1
e-5) {
473 pt = paraC / fabs(dphi);
485 hit = hitpair.second;
494 hit->globalDirection().phi() > 0)
501 polar *= fabs(
pt) / polar.
perp();
507 mat =
hit->parametersError().similarityT(
hit->projectionMatrix());
509 float p_err = 0.004 / paraC;
520 LogTrace(
category) <<
"mom: " << tsos.globalMomentum() <<
" phi: " << tsos.globalMomentum().phi();
526 container.
push_back(hitpair.first->hit()->clone());
527 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, OrderedSet::t, and CosmicMuonSeedGenerator::MuonRecHitPair::type.
◆ createSeed() [2/2]
create TrajectorySeed from MuonTransientTrackingRecHit
Definition at line 308 of file CosmicMuonSeedGenerator.cc.
310 std::vector<TrajectorySeed>
result;
329 hit->globalDirection().phi() > 0)
336 polar *= fabs(
pt) / polar.
perp();
346 mat =
hit->parametersError().similarityT(
hit->projectionMatrix());
358 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 100 of file CosmicMuonSeedGenerator.cc.
103 auto output = std::make_unique<TrajectorySeedCollection>();
123 vector<MuonRecHitContainer> RHMBs;
124 vector<MuonRecHitContainer> RHMEFs;
125 vector<MuonRecHitContainer> RHMEBs;
127 stable_sort(allHits.begin(), allHits.end(), DecreasingGlobalY());
129 for (vector<const DetLayer*>::reverse_iterator icsclayer = cscForwardLayers.rbegin();
130 icsclayer != cscForwardLayers.rend() - 1;
133 allHits.insert(allHits.end(), RHMF.begin(), RHMF.end());
136 for (vector<const DetLayer*>::reverse_iterator icsclayer = cscBackwardLayers.rbegin();
137 icsclayer != cscBackwardLayers.rend() - 1;
140 allHits.insert(allHits.end(), RHMF.begin(), RHMF.end());
143 for (vector<const DetLayer*>::reverse_iterator idtlayer = dtLayers.rbegin(); idtlayer != dtLayers.rend();
146 RHMBs.push_back(RHMB);
148 if (idtlayer != dtLayers.rbegin())
149 allHits.insert(allHits.end(), RHMB.begin(), RHMB.end());
174 if (!allHits.empty()) {
178 if (goodhits.empty()) {
References taus_updatedMVAIds_cff::category, edm::EventSetup::get(), edm::get(), LogTrace, eostools::move(), convertSQLitetoXML_cfg::output, SurveyInfoScenario_cff::seed, InitialStep_cff::seeds, and AlCaHLTBitMon_QueryRunRegistry::string.
◆ selectSegments()
◆ tsosToSeed() [1/2]
◆ tsosToSeed() [2/2]
◆ 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
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
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