#include <GE0SegAlgoRU.h>
Classes | |
struct | HitAndPosition |
struct | SegmentParameters |
Public Types | |
typedef std::vector< bool > | BoolContainer |
typedef std::vector < HitAndPosition > | HitAndPositionContainer |
typedef std::vector< const HitAndPosition * > | HitAndPositionPtrContainer |
typedef std::vector< std::pair < float, HitAndPositionPtrContainer > > | SegmentByMetricContainer |
Public Types inherited from GEMSegmentAlgorithmBase | |
typedef std::pair< const GEMSuperChamber *, std::map < uint32_t, const GEMEtaPartition * > > | GEMEnsemble |
Public Member Functions | |
GE0SegAlgoRU (const edm::ParameterSet &ps) | |
Constructor. More... | |
std::vector< GEMSegment > | run (const GEMSuperChamber *chamber, const HitAndPositionContainer &rechits) |
std::vector< GEMSegment > | run (const GEMEnsemble &ensemble, const std::vector< const GEMRecHit * > &rechits) override |
~GE0SegAlgoRU () override | |
Destructor. More... | |
Public Member Functions inherited from GEMSegmentAlgorithmBase | |
GEMSegmentAlgorithmBase (const edm::ParameterSet &) | |
Constructor. More... | |
virtual | ~GEMSegmentAlgorithmBase () |
Destructor. More... | |
Private Member Functions | |
std::unique_ptr< MuonSegFit > | addHit (HitAndPositionPtrContainer &proto_segment, const HitAndPosition &aHit) const |
void | addUniqueSegments (SegmentByMetricContainer &proto_segments, std::vector< GEMSegment > &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 |
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 GEMRecHit &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< GEMSegment > &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 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 GEMSuperChamber * | theChamber |
SegmentParameters | wideParameters |
adapted from CSC to ME0 bt Marcello Maggi and ME0 to GE0 by Ian J. Watson
This is the original algorithm for building endcap muon track segments out of the rechit's in a GE0Chamber 'RU' = 'RUssia' = Road Usage
A GEMSegment is a RecSegment4D, and is built from GEMRecHit2D objects, each of which is a RecHit2DLocalPos.
This class is used by the GEMSegmentAlgorithm.
Alternative algorithms can be used for the segment building by writing classes like this, and then selecting which one is actually used via the GEMSegmentBuilder.
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 GE0SegAlgoRU.h.
typedef std::vector<bool> GE0SegAlgoRU::BoolContainer |
Definition at line 62 of file GE0SegAlgoRU.h.
typedef std::vector<HitAndPosition> GE0SegAlgoRU::HitAndPositionContainer |
Definition at line 58 of file GE0SegAlgoRU.h.
typedef std::vector<const HitAndPosition*> GE0SegAlgoRU::HitAndPositionPtrContainer |
Definition at line 59 of file GE0SegAlgoRU.h.
typedef std::vector<std::pair<float, HitAndPositionPtrContainer> > GE0SegAlgoRU::SegmentByMetricContainer |
Definition at line 63 of file GE0SegAlgoRU.h.
|
explicit |
Constructor.
Definition at line 26 of file GE0SegAlgoRU.cc.
References allowWideSegments, displacedParameters, doCollisions, edm::ParameterSet::getParameter(), LogDebug, GE0SegAlgoRU::SegmentParameters::maxChi2Additional, GE0SegAlgoRU::SegmentParameters::maxChi2GoodSeg, GE0SegAlgoRU::SegmentParameters::maxChi2Prune, GE0SegAlgoRU::SegmentParameters::maxETASeeds, GE0SegAlgoRU::SegmentParameters::maxNumberOfHits, GE0SegAlgoRU::SegmentParameters::maxNumberOfHitsPerLayer, GE0SegAlgoRU::SegmentParameters::maxPhiAdditional, GE0SegAlgoRU::SegmentParameters::maxPhiSeeds, GE0SegAlgoRU::SegmentParameters::minNumberOfHits, myName, GE0SegAlgoRU::SegmentParameters::requireBeamConstr, GE0SegAlgoRU::SegmentParameters::requireCentralBX, stdParameters, theChamber, and wideParameters.
|
inlineoverride |
|
private |
Definition at line 430 of file GE0SegAlgoRU.cc.
References makeFit().
Referenced by compareProtoSegment(), increaseProtoSegment(), and lookForSegments().
|
private |
Definition at line 287 of file GE0SegAlgoRU.cc.
References a, b, GEMSuperChamber::computeDeltaPhi(), h, GE0SegAlgoRU::HitAndPosition::layer, makeFit(), groupFilesInBlocks::temp, and theChamber.
Referenced by lookForSegments().
|
private |
Definition at line 384 of file GE0SegAlgoRU.cc.
References funct::abs(), change_name::diff, PV3DBase< T, PVType, FrameType >::eta(), validate-o2o-wbm::f, and SiStripPI::max.
Referenced by lookForSegments().
|
private |
Definition at line 396 of file GE0SegAlgoRU.cc.
References funct::abs(), PV3DBase< T, PVType, FrameType >::barePhi(), srCondWrite_cfg::deltaPhi, validate-o2o-wbm::f, and SiStripPI::max.
Referenced by lookForSegments().
|
private |
Definition at line 497 of file GE0SegAlgoRU.cc.
References funct::abs(), addHit(), GEMRecHit::BunchX(), h, GE0SegAlgoRU::HitAndPosition::layer, GE0SegAlgoRU::HitAndPosition::lp, eostools::move(), and GE0SegAlgoRU::HitAndPosition::rh.
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 474 of file GE0SegAlgoRU.cc.
References GEMRecHit::localPosition(), GEMRecHit::localPositionError(), and LocalError::xx().
Referenced by pruneBadHits().
|
private |
Definition at line 424 of file GE0SegAlgoRU.cc.
References theChamber, GeomDet::toGlobal(), x, and y.
Referenced by isHitNearSegment().
|
private |
Definition at line 490 of file GE0SegAlgoRU.cc.
References h.
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 535 of file GE0SegAlgoRU.cc.
References addHit(), HLT_FULL_cff::maxChi2, and eostools::move().
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 407 of file GE0SegAlgoRU.cc.
References funct::abs(), PV3DBase< T, PVType, FrameType >::barePhi(), srCondWrite_cfg::deltaPhi, PV3DBase< T, PVType, FrameType >::eta(), validate-o2o-wbm::f, globalAtZ(), GE0SegAlgoRU::HitAndPosition::gp, GE0SegAlgoRU::HitAndPosition::lp, SiStripPI::max, PV3DBase< T, PVType, FrameType >::phi(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by tryAddingHitsToSegment().
|
private |
Definition at line 200 of file GE0SegAlgoRU.cc.
References funct::abs(), addHit(), addUniqueSegments(), areHitsCloseInEta(), areHitsCloseInGlobalPhi(), cuy::ib, GE0SegAlgoRU::SegmentParameters::maxChi2Additional, GE0SegAlgoRU::SegmentParameters::maxChi2GoodSeg, GE0SegAlgoRU::SegmentParameters::maxChi2Prune, GE0SegAlgoRU::SegmentParameters::maxETASeeds, GE0SegAlgoRU::SegmentParameters::maxNumberOfHitsPerLayer, GE0SegAlgoRU::SegmentParameters::maxPhiAdditional, GE0SegAlgoRU::SegmentParameters::maxPhiSeeds, pruneBadHits(), GE0SegAlgoRU::SegmentParameters::requireBeamConstr, GE0SegAlgoRU::SegmentParameters::requireCentralBX, and tryAddingHitsToSegment().
Referenced by run().
|
private |
Definition at line 437 of file GE0SegAlgoRU.cc.
References GEMRecHit::clone(), and GEMRecHit::setPosition().
Referenced by addHit(), addUniqueSegments(), and pruneBadHits().
|
private |
Definition at line 452 of file GE0SegAlgoRU.cc.
References getHitSegChi2(), makeFit(), and HLT_FULL_cff::maxChi2.
Referenced by lookForSegments().
std::vector< GEMSegment > GE0SegAlgoRU::run | ( | const GEMSuperChamber * | chamber, |
const HitAndPositionContainer & | rechits | ||
) |
Here we must implement the algorithm
Definition at line 98 of file GE0SegAlgoRU.cc.
References allowWideSegments, displacedParameters, doCollisions, h, GEMSuperChamber::id(), lookForSegments(), GE0SegAlgoRU::SegmentParameters::maxNumberOfHits, GE0SegAlgoRU::SegmentParameters::minNumberOfHits, GEMSuperChamber::nChambers(), stdParameters, and theChamber.
Referenced by run().
|
overridevirtual |
Run the algorithm = build the segments in this chamber
Implements GEMSegmentAlgorithmBase.
Definition at line 73 of file GE0SegAlgoRU.cc.
References glb, GE0SegAlgoRU::HitAndPosition::layer, LogDebug, position, run(), and GeomDet::toGlobal().
|
private |
Definition at line 348 of file GE0SegAlgoRU.cc.
References compareProtoSegment(), hasHitOnLayer(), increaseProtoSegment(), and isHitNearSegment().
Referenced by lookForSegments().
|
private |
Definition at line 143 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU(), and run().
|
private |
Definition at line 146 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU(), and run().
|
private |
Definition at line 142 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU(), and run().
|
private |
Definition at line 141 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU().
|
private |
Definition at line 145 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU(), and run().
|
private |
Definition at line 150 of file GE0SegAlgoRU.h.
Referenced by addUniqueSegments(), GE0SegAlgoRU(), globalAtZ(), and run().
|
private |
Definition at line 147 of file GE0SegAlgoRU.h.
Referenced by GE0SegAlgoRU().