#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 32 of file ME0SegAlgoRU.h.
typedef std::vector<bool> ME0SegAlgoRU::BoolContainer |
Definition at line 50 of file ME0SegAlgoRU.h.
typedef std::vector<std::pair<float,HitAndPositionPtrContainer> > ME0SegAlgoRU::SegmentByMetricContainer |
Definition at line 51 of file ME0SegAlgoRU.h.
|
explicit |
Constructor.
Definition at line 27 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 |
Destructor.
Definition at line 56 of file ME0SegAlgoRU.h.
References addHit(), addUniqueSegments(), areHitsCloseInEta(), areHitsCloseInGlobalPhi(), areHitsConsistentInTime(), relativeConstraints::chamber, compareProtoSegment(), getHitSegChi2(), globalAtZ(), h, hasHitOnLayer(), increaseProtoSegment(), isHitNearSegment(), lookForSegments(), makeFit(), btvTracks_cfi::maxChi2, trackingParticleSelector_cfi::maxPhi, pruneBadHits(), TrackInfoProducer_cfi::rechits, run(), tryAddingHitsToSegment(), and z.
|
private |
Definition at line 367 of file ME0SegAlgoRU.cc.
References makeFit().
Referenced by compareProtoSegment(), increaseProtoSegment(), lookForSegments(), and ~ME0SegAlgoRU().
|
private |
Definition at line 242 of file ME0SegAlgoRU.cc.
References a, b, ME0Chamber::computeDeltaPhi(), particleFlow_cfi::dPhi, objects.autophobj::float, h, training_settings::idx, ME0SegmentAlgorithmBase::HitAndPosition::layer, makeFit(), mathSSE::sqrt(), groupFilesInBlocks::temp, and theChamber.
Referenced by lookForSegments(), and ~ME0SegAlgoRU().
|
private |
Definition at line 325 of file ME0SegAlgoRU.cc.
References diffTreeTool::diff, PV3DBase< T, PVType, FrameType >::eta(), and SiStripPI::max.
Referenced by lookForSegments(), and ~ME0SegAlgoRU().
|
private |
Definition at line 332 of file ME0SegAlgoRU.cc.
References PV3DBase< T, PVType, FrameType >::barePhi(), hiPixelPairStep_cff::deltaPhi, and SiStripPI::max.
Referenced by lookForSegments(), and ~ME0SegAlgoRU().
|
private |
Definition at line 352 of file ME0SegAlgoRU.cc.
References ME0SegmentAlgorithmBase::HitAndPosition::rh, and ME0RecHit::tof().
Referenced by tryAddingHitsToSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 425 of file ME0SegAlgoRU.cc.
References funct::abs(), addHit(), objects.autophobj::float, h, ME0SegmentAlgorithmBase::HitAndPosition::layer, ME0SegmentAlgorithmBase::HitAndPosition::lp, eostools::move(), ME0SegmentAlgorithmBase::HitAndPosition::rh, and ME0RecHit::tof().
Referenced by tryAddingHitsToSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 404 of file ME0SegAlgoRU.cc.
References ME0RecHit::localPosition(), ME0RecHit::localPositionError(), and LocalError::xx().
Referenced by pruneBadHits(), and ~ME0SegAlgoRU().
|
private |
Definition at line 361 of file ME0SegAlgoRU.cc.
References theChamber, GeomDet::toGlobal(), x, and y.
Referenced by isHitNearSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 420 of file ME0SegAlgoRU.cc.
References h.
Referenced by tryAddingHitsToSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 460 of file ME0SegAlgoRU.cc.
References addHit(), btvTracks_cfi::maxChi2, and eostools::move().
Referenced by tryAddingHitsToSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 338 of file ME0SegAlgoRU.cc.
References PV3DBase< T, PVType, FrameType >::barePhi(), hiPixelPairStep_cff::deltaPhi, particleFlow_cfi::dPhi, PV3DBase< T, PVType, FrameType >::eta(), globalAtZ(), ME0SegmentAlgorithmBase::HitAndPosition::gp, ME0SegmentAlgorithmBase::HitAndPosition::lp, SiStripPI::max, PV3DBase< T, PVType, FrameType >::phi(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by tryAddingHitsToSegment(), and ~ME0SegAlgoRU().
|
private |
Definition at line 176 of file ME0SegAlgoRU.cc.
References funct::abs(), addHit(), addUniqueSegments(), areHitsCloseInEta(), areHitsCloseInGlobalPhi(), cuy::ib, ME0SegAlgoRU::SegmentParameters::maxChi2Additional, ME0SegAlgoRU::SegmentParameters::maxChi2GoodSeg, ME0SegAlgoRU::SegmentParameters::maxChi2Prune, ME0SegAlgoRU::SegmentParameters::maxETASeeds, ME0SegAlgoRU::SegmentParameters::maxPhiAdditional, ME0SegAlgoRU::SegmentParameters::maxPhiSeeds, ME0SegAlgoRU::SegmentParameters::maxTOFDiff, pruneBadHits(), ME0SegAlgoRU::SegmentParameters::requireBeamConstr, ME0SegAlgoRU::SegmentParameters::requireCentralBX, and tryAddingHitsToSegment().
Referenced by run(), and ~ME0SegAlgoRU().
|
private |
Definition at line 373 of file ME0SegAlgoRU.cc.
References ME0RecHit::clone(), and ME0RecHit::setPosition().
Referenced by addHit(), addUniqueSegments(), pruneBadHits(), and ~ME0SegAlgoRU().
|
private |
Definition at line 388 of file ME0SegAlgoRU.cc.
References getHitSegChi2(), makeFit(), and btvTracks_cfi::maxChi2.
Referenced by lookForSegments(), and ~ME0SegAlgoRU().
|
overridevirtual |
Here we must implement the algorithm
Implements ME0SegmentAlgorithmBase.
Definition at line 79 of file ME0SegAlgoRU.cc.
References allowWideSegments, relativeConstraints::chamber, displacedParameters, doCollisions, ME0Chamber::id(), lookForSegments(), ME0SegAlgoRU::SegmentParameters::minNumberOfHits, stdParameters, and theChamber.
Referenced by ~ME0SegAlgoRU().
|
private |
Definition at line 298 of file ME0SegAlgoRU.cc.
References areHitsConsistentInTime(), compareProtoSegment(), hasHitOnLayer(), increaseProtoSegment(), and isHitNearSegment().
Referenced by lookForSegments(), and ~ME0SegAlgoRU().
|
private |
Definition at line 103 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 106 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 102 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 101 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU().
|
private |
Definition at line 105 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU(), and run().
|
private |
Definition at line 110 of file ME0SegAlgoRU.h.
Referenced by addUniqueSegments(), globalAtZ(), ME0SegAlgoRU(), and run().
|
private |
Definition at line 107 of file ME0SegAlgoRU.h.
Referenced by ME0SegAlgoRU().