#include <GEMSegmentAlgorithm.h>
Public Types | |
typedef std::vector< const GEMRecHit * > | EnsembleHitContainer |
Typedefs. More... | |
typedef std::vector< EnsembleHitContainer > | ProtoSegments |
Public Types inherited from GEMSegmentAlgorithmBase | |
typedef std::pair< const GEMSuperChamber *, std::map< uint32_t, const GEMEtaPartition * > > | GEMEnsemble |
Public Member Functions | |
GEMSegmentAlgorithm (const edm::ParameterSet &ps) | |
Constructor. More... | |
std::vector< GEMSegment > | run (const GEMEnsemble &ensemble, const EnsembleHitContainer &rechits) override |
~GEMSegmentAlgorithm () override | |
Destructor. More... | |
Public Member Functions inherited from GEMSegmentAlgorithmBase | |
GEMSegmentAlgorithmBase (const edm::ParameterSet &) | |
Constructor. More... | |
virtual std::vector< GEMSegment > | run (const GEMEnsemble &ensemble, const std::vector< const GEMRecHit * > &rechits)=0 |
virtual | ~GEMSegmentAlgorithmBase () |
Destructor. More... | |
Private Member Functions | |
void | buildSegments (const GEMEnsemble &ensemble, const EnsembleHitContainer &rechits, std::vector< GEMSegment > &gemsegs) |
ProtoSegments | chainHits (const GEMEnsemble &ensemble, const EnsembleHitContainer &rechits) |
ProtoSegments | clusterHits (const GEMEnsemble &ensemble, const EnsembleHitContainer &rechits) |
Utility functions. More... | |
bool | isGoodToMerge (const GEMEnsemble &ensemble, const EnsembleHitContainer &newChain, const EnsembleHitContainer &oldChain) |
Private Attributes | |
bool | clusterOnlySameBXRecHits |
bool | debug |
double | dEtaChainBoxMax |
double | dPhiChainBoxMax |
double | dXclusBoxMax |
double | dYclusBoxMax |
int | maxRecHitsInCluster |
unsigned int | minHitsPerSegment |
const std::string | myName |
bool | preClustering |
bool | preClustering_useChaining |
EnsembleHitContainer | proto_segment |
std::unique_ptr< MuonSegFit > | sfit_ |
GEMDetId | theChamberId |
Static Private Attributes | |
static float | running_max =std::numeric_limits<float>::max() |
This algorithm is very basic no attemp to deal with ambiguities , noise etc. The GEM track segments (actually more correct would be: GEM correlated hits) is built out of the rechits in two GEM layers in GE1/1 or GE2/1 as the GEM Ensabmle .
Definition at line 25 of file GEMSegmentAlgorithm.h.
typedef std::vector<const GEMRecHit*> GEMSegmentAlgorithm::EnsembleHitContainer |
Typedefs.
Definition at line 30 of file GEMSegmentAlgorithm.h.
typedef std::vector<EnsembleHitContainer> GEMSegmentAlgorithm::ProtoSegments |
Definition at line 31 of file GEMSegmentAlgorithm.h.
|
explicit |
Constructor.
Definition at line 25 of file GEMSegmentAlgorithm.cc.
References clusterOnlySameBXRecHits, debug, dEtaChainBoxMax, dPhiChainBoxMax, dXclusBoxMax, dYclusBoxMax, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), maxRecHitsInCluster, minHitsPerSegment, preClustering, and preClustering_useChaining.
|
override |
|
private |
Definition at line 310 of file GEMSegmentAlgorithm.cc.
References GEMRecHit::clone(), GEMSegment::gemDetId(), runTauDisplay::gp, minHitsPerSegment, proto_segment, GEMRecHit::setPosition(), sfit_, tmp, GeomDet::toGlobal(), and GeomDet::toLocal().
Referenced by run().
|
private |
Definition at line 208 of file GEMSegmentAlgorithm.cc.
References begin, end, mps_fire::i, and isGoodToMerge().
Referenced by run().
|
private |
Utility functions.
Definition at line 103 of file GEMSegmentAlgorithm.cc.
References begin, dXclusBoxMax, dYclusBoxMax, end, Exception, mps_fire::i, LogDebug, DetId::rawId(), running_max, findQualityFiles::size, GeomDet::toGlobal(), GeomDet::toLocal(), PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by run().
|
private |
Definition at line 269 of file GEMSegmentAlgorithm.cc.
References funct::abs(), clusterOnlySameBXRecHits, reco::deltaPhi(), dEtaChainBoxMax, dPhiChainBoxMax, PV3DBase< T, PVType, FrameType >::eta(), PV3DBase< T, PVType, FrameType >::phi(), edm::second(), and GeomDet::toGlobal().
Referenced by chainHits().
|
override |
Build segments for all desired groups of hits
Definition at line 60 of file GEMSegmentAlgorithm.cc.
References buildSegments(), chainHits(), clusterHits(), preClustering, and preClustering_useChaining.
|
private |
Definition at line 70 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm(), and isGoodToMerge().
|
private |
Definition at line 61 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm().
|
private |
Definition at line 68 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm(), and isGoodToMerge().
|
private |
Definition at line 67 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm(), and isGoodToMerge().
|
private |
Definition at line 64 of file GEMSegmentAlgorithm.h.
Referenced by clusterHits(), and GEMSegmentAlgorithm().
|
private |
Definition at line 65 of file GEMSegmentAlgorithm.h.
Referenced by clusterHits(), and GEMSegmentAlgorithm().
|
private |
Definition at line 69 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm().
|
private |
Definition at line 62 of file GEMSegmentAlgorithm.h.
Referenced by buildSegments(), and GEMSegmentAlgorithm().
|
private |
Definition at line 58 of file GEMSegmentAlgorithm.h.
|
private |
Definition at line 63 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm(), and run().
|
private |
Definition at line 66 of file GEMSegmentAlgorithm.h.
Referenced by GEMSegmentAlgorithm(), and run().
|
private |
Definition at line 72 of file GEMSegmentAlgorithm.h.
Referenced by buildSegments().
|
staticprivate |
Definition at line 75 of file GEMSegmentAlgorithm.h.
Referenced by clusterHits().
|
private |
Definition at line 76 of file GEMSegmentAlgorithm.h.
Referenced by buildSegments().
|
private |
Definition at line 73 of file GEMSegmentAlgorithm.h.