#include <ME0SegAlgoRU.h>
Classes | |
struct | SegmentParameters |
Public Types | |
typedef std::vector< bool > | BoolContainer |
typedef std::vector< std::pair< float, HitAndPositionPtrContainer > > | SegmentByMetricContainer |
Public Types inherited from ME0SegmentAlgorithmBase | |
typedef std::vector< HitAndPosition > | HitAndPositionContainer |
typedef std::vector< const HitAndPosition * > | HitAndPositionPtrContainer |
Public Member Functions | |
ME0SegAlgoRU (const edm::ParameterSet &ps) | |
Constructor. More... | |
std::vector< ME0Segment > | run (const ME0Chamber *chamber, const HitAndPositionContainer &rechits) override |
~ME0SegAlgoRU () override | |
Destructor. More... | |
Public Member Functions inherited from ME0SegmentAlgorithmBase | |
ME0SegmentAlgorithmBase (const edm::ParameterSet &) | |
Constructor. More... | |
virtual | ~ME0SegmentAlgorithmBase () |
Destructor. More... | |
Private Member Functions | |
std::unique_ptr< MuonSegFit > | addHit (HitAndPositionPtrContainer &proto_segment, const HitAndPosition &aHit) const |
void | addUniqueSegments (SegmentByMetricContainer &proto_segments, std::vector< ME0Segment > &segments, BoolContainer &used) const |
bool | areHitsCloseInEta (const float maxETA, const bool beamConst, const GlobalPoint &h1, const GlobalPoint &h2) const |
bool | areHitsCloseInGlobalPhi (const float maxPHI, const unsigned int nLayDisp, const GlobalPoint &h1, const GlobalPoint &h2) const |
bool | areHitsConsistentInTime (const float maxTOF, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const |
void | compareProtoSegment (std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const |
float | getHitSegChi2 (const std::unique_ptr< MuonSegFit > &fit, const ME0RecHit &hit) const |
GlobalPoint | globalAtZ (const std::unique_ptr< MuonSegFit > &fit, float z) const |
bool | hasHitOnLayer (const HitAndPositionPtrContainer &proto_segment, const unsigned int layer) const |
void | increaseProtoSegment (const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer ¤t_proto_segment, const HitAndPosition &new_hit) const |
bool | isHitNearSegment (const float maxETA, const float maxPHI, const std::unique_ptr< MuonSegFit > &fit, const HitAndPositionPtrContainer &proto_segment, const HitAndPosition &h) const |
void | lookForSegments (const SegmentParameters ¶ms, const unsigned int n_seg_min, const HitAndPositionContainer &rechits, const std::vector< unsigned int > &recHits_per_layer, BoolContainer &used, std::vector< ME0Segment > &segments) const |
std::unique_ptr< MuonSegFit > | makeFit (const HitAndPositionPtrContainer &proto_segment) const |
void | pruneBadHits (const float maxChi2, HitAndPositionPtrContainer &proto_segment, std::unique_ptr< MuonSegFit > &fit, const unsigned int n_seg_min) const |
void | tryAddingHitsToSegment (const float maxTOF, const float maxETA, const float maxPhi, const float maxChi2, std::unique_ptr< MuonSegFit > ¤t_fit, HitAndPositionPtrContainer &proto_segment, const BoolContainer &used, HitAndPositionContainer::const_iterator i1, HitAndPositionContainer::const_iterator i2) const |
Private Attributes | |
bool | allowWideSegments |
SegmentParameters | displacedParameters |
bool | doCollisions |
const std::string | myName |
SegmentParameters | stdParameters |
const ME0Chamber * | theChamber |
SegmentParameters | wideParameters |
adapted from CSC to ME0 bt Marcello Maggi
This is the original algorithm for building endcap muon track segments out of the rechit's in a ME0Chamber 'RU' = 'RUssia' = Road Usage
A ME0Segment is a RecSegment4D, and is built from ME0RecHit2D objects, each of which is a RecHit2DLocalPos.
This class is used by the ME0SegmentAlgorithm.
Alternative algorithms can be used for the segment building by writing classes like this, and then selecting which one is actually used via the ME0SegmentBuilder.
developed and implemented by Vladimir Palichik Vladi and Nikolay Voytishin mir. Paltc hik@ cern. chnikol ay.v oytis hin@ cern. ch
Definition at line 31 of file ME0SegAlgoRU.h.
typedef std::vector<bool> ME0SegAlgoRU::BoolContainer |
Definition at line 47 of file ME0SegAlgoRU.h.
typedef std::vector<std::pair<float, HitAndPositionPtrContainer> > ME0SegAlgoRU::SegmentByMetricContainer |
Definition at line 48 of file ME0SegAlgoRU.h.
|
explicit |
Constructor.
Definition at line 25 of file ME0SegAlgoRU.cc.
References allowWideSegments, displacedParameters, doCollisions, edm::ParameterSet::getParameter(), LogDebug, ME0SegAlgoRU::SegmentParameters::maxChi2Additional, ME0SegAlgoRU::SegmentParameters::maxChi2GoodSeg, ME0SegAlgoRU::SegmentParameters::maxChi2Prune, ME0SegAlgoRU::SegmentParameters::maxETASeeds, ME0SegAlgoRU::SegmentParameters::maxPhiAdditional, ME0SegAlgoRU::SegmentParameters::maxPhiSeeds, ME0SegAlgoRU::SegmentParameters::maxTOFDiff, ME0SegAlgoRU::SegmentParameters::minNumberOfHits, myName, ME0SegAlgoRU::SegmentParameters::requireBeamConstr, ME0SegAlgoRU::SegmentParameters::requireCentralBX, stdParameters, theChamber, and wideParameters.
|
inlineoverride |
|
private |
Definition at line 436 of file ME0SegAlgoRU.cc.
References makeFit().
Referenced by compareProtoSegment(), increaseProtoSegment(), and lookForSegments().
|
private |
Definition at line 268 of file ME0SegAlgoRU.cc.
References a, b, ME0Chamber::computeDeltaPhi(), HLT_FULL_cff::dPhi, dqmMemoryStats::float, heavyIonCSV_trainingSettings::idx, makeFit(), mathSSE::sqrt(), groupFilesInBlocks::temp, and theChamber.
Referenced by lookForSegments().
|
private |
Definition at line 374 of file ME0SegAlgoRU.cc.
References change_name::diff, PV3DBase< T, PVType, FrameType >::eta(), f, SiStripPI::max, and HLT_FULL_cff::maxETA.
Referenced by lookForSegments().
|
private |
Definition at line 386 of file ME0SegAlgoRU.cc.
References PV3DBase< T, PVType, FrameType >::barePhi(), SiPixelRawToDigiRegional_cfi::deltaPhi, f, and SiStripPI::max.
Referenced by lookForSegments().
|
private |
|
private |
Definition at line 503 of file ME0SegAlgoRU.cc.
References funct::abs(), addHit(), dqmMemoryStats::float, ME0SegmentAlgorithmBase::HitAndPosition::layer, ME0SegmentAlgorithmBase::HitAndPosition::lp, eostools::move(), ME0SegmentAlgorithmBase::HitAndPosition::rh, and ME0RecHit::tof().
Referenced by tryAddingHitsToSegment().
|
private |
|
private |
Definition at line 430 of file ME0SegAlgoRU.cc.
References theChamber, GeomDet::toGlobal(), x, y, and z.
Referenced by isHitNearSegment().
|
private |
|
private |
Definition at line 541 of file ME0SegAlgoRU.cc.
References addHit(), beam_dqm_sourceclient-live_cfg::maxChi2, and eostools::move().
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 397 of file ME0SegAlgoRU.cc.
References SiPixelRawToDigiRegional_cfi::deltaPhi, HLT_FULL_cff::dPhi, f, globalAtZ(), SiStripPI::max, HLT_FULL_cff::maxETA, and PV3DBase< T, PVType, FrameType >::phi().
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 175 of file ME0SegAlgoRU.cc.
References funct::abs(), addHit(), addUniqueSegments(), areHitsCloseInEta(), areHitsCloseInGlobalPhi(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, cuy::ib, CalibrationSummaryClient_cfi::params, pruneBadHits(), HI_PhotonSkim_cff::rechits, and tryAddingHitsToSegment().
Referenced by run().
|
private |
Definition at line 443 of file ME0SegAlgoRU.cc.
References ME0RecHit::clone(), and ME0RecHit::setPosition().
Referenced by addHit(), addUniqueSegments(), and pruneBadHits().
|
private |
Definition at line 458 of file ME0SegAlgoRU.cc.
References getHitSegChi2(), makeFit(), and beam_dqm_sourceclient-live_cfg::maxChi2.
Referenced by lookForSegments().
|
overridevirtual |
Here we must implement the algorithm
Implements ME0SegmentAlgorithmBase.
Definition at line 72 of file ME0SegAlgoRU.cc.
References allowWideSegments, relativeConstraints::chamber, displacedParameters, doCollisions, lookForSegments(), ME0SegAlgoRU::SegmentParameters::minNumberOfHits, HI_PhotonSkim_cff::rechits, stdParameters, and theChamber.
|
private |
Definition at line 335 of file ME0SegAlgoRU.cc.
References areHitsConsistentInTime(), compareProtoSegment(), hasHitOnLayer(), testProducerWithPsetDescEmpty_cfi::i1, testProducerWithPsetDescEmpty_cfi::i2, increaseProtoSegment(), isHitNearSegment(), beam_dqm_sourceclient-live_cfg::maxChi2, HLT_FULL_cff::maxETA, and HLT_FULL_cff::maxPhi.
Referenced by lookForSegments().
|
private |
Definition at line 129 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 132 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 128 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 127 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU().
|
private |
Definition at line 131 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 136 of file ME0SegAlgoRU.h.
Referenced by addUniqueSegments(), globalAtZ(), ME0SegAlgoRU(), and run().
|
private |
Definition at line 133 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU().