CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
CSCSegAlgoSK Class Reference

#include <CSCSegAlgoSK.h>

Inheritance diagram for CSCSegAlgoSK:
CSCSegmentAlgorithm

Public Types

typedef std::deque< bool > BoolContainer
 
typedef std::vector< const
CSCRecHit2D * > 
ChamberHitContainer
 
typedef std::vector< const
CSCRecHit2D * >
::const_iterator 
ChamberHitContainerCIt
 
typedef std::vector< int > LayerIndex
 Typedefs. More...
 

Public Member Functions

std::vector< CSCSegmentbuildSegments (const ChamberHitContainer &rechits)
 
 CSCSegAlgoSK (const edm::ParameterSet &ps)
 Constructor. More...
 
std::vector< CSCSegmentrun (const CSCChamber *aChamber, const ChamberHitContainer &rechits)
 
virtual ~CSCSegAlgoSK ()
 Destructor. More...
 
- Public Member Functions inherited from CSCSegmentAlgorithm
 CSCSegmentAlgorithm (const edm::ParameterSet &)
 Constructor. More...
 
virtual std::vector< CSCSegmentrun (const CSCChamber *chamber, const std::vector< const CSCRecHit2D * > &rechits)=0
 
virtual ~CSCSegmentAlgorithm ()
 Destructor. More...
 

Private Member Functions

bool addHit (const CSCRecHit2D *hit, int layer)
 Utility functions. More...
 
bool areHitsCloseInGlobalPhi (const CSCRecHit2D *h1, const CSCRecHit2D *h2) const
 
bool areHitsCloseInLocalX (const CSCRecHit2D *h1, const CSCRecHit2D *h2) const
 Utility functions. More...
 
void compareProtoSegment (const CSCRecHit2D *h, int layer)
 
void dumpHits (const ChamberHitContainer &rechits) const
 
void dumpSegment (const CSCSegment &seg) const
 
void flagHitsAsUsed (const ChamberHitContainer &rechitsInChamber, BoolContainer &used) const
 
bool hasHitOnLayer (int layer) const
 
void increaseProtoSegment (const CSCRecHit2D *h, int layer)
 
bool isHitNearSegment (const CSCRecHit2D *h) const
 
bool isSegmentGood (const ChamberHitContainer &rechitsInChamber) const
 
float phiAtZ (float z) const
 
bool replaceHit (const CSCRecHit2D *h, int layer)
 
void tryAddingHitsToSegment (const ChamberHitContainer &rechitsInChamber, const BoolContainer &used, const LayerIndex &layerIndex, const ChamberHitContainerCIt i1, const ChamberHitContainerCIt i2)
 
void updateParameters (void)
 

Private Attributes

float chi2Max
 
bool debugInfo
 
float dPhiFineMax
 
float dPhiMax
 
float dRPhiFineMax
 
float dRPhiMax
 
int minLayersApart
 
const std::string myName
 
ChamberHitContainer proto_segment
 
CSCSegFitsfit_
 
const CSCChambertheChamber
 
float wideSeg
 
float windowScale
 

Detailed Description

This is the original algorithm for building endcap muon track segments out of the rechit's in a CSCChamber. cf. CSCSegmentizerTC.
'SK' = 'Sasha Khanov' = Speed King

A CSCSegment is a RecSegment4D, and is built from CSCRecHit2D objects, each of which is a RecHit2DLocalPos.

This class is used by the CSCSegmentAlgorithm.
Alternative algorithms can be used for the segment building by writing classes like this, and then selecting which one is actually used via the CSCSegmentBuilder.

Original (in FORTRAN): Alexa.nosp@m.ndre.nosp@m..Khan.nosp@m.ov@c.nosp@m.ern.c.nosp@m.h
Ported to C++ and improved: Rick..nosp@m.Wilk.nosp@m.inson.nosp@m.@cer.nosp@m.n.ch
Reimplemented in terms of layer index, and bug fix: Tim.C.nosp@m.ox@c.nosp@m.ern.c.nosp@m.h
Ported to CMSSW 2006-04-03: Matte.nosp@m.o.Sa.nosp@m.ni@ce.nosp@m.rn.c.nosp@m.h
Factored out segment fitter Tim.C.nosp@m.ox@c.nosp@m.ern.c.nosp@m.h Feb-2015

Definition at line 35 of file CSCSegAlgoSK.h.

Member Typedef Documentation

typedef std::deque<bool> CSCSegAlgoSK::BoolContainer

Definition at line 58 of file CSCSegAlgoSK.h.

typedef std::vector<const CSCRecHit2D*> CSCSegAlgoSK::ChamberHitContainer

Definition at line 50 of file CSCSegAlgoSK.h.

typedef std::vector<const CSCRecHit2D*>::const_iterator CSCSegAlgoSK::ChamberHitContainerCIt

Definition at line 51 of file CSCSegAlgoSK.h.

typedef std::vector<int> CSCSegAlgoSK::LayerIndex

Typedefs.

Definition at line 49 of file CSCSegAlgoSK.h.

Constructor & Destructor Documentation

CSCSegAlgoSK::CSCSegAlgoSK ( const edm::ParameterSet ps)
explicit

Constructor.

Definition at line 19 of file CSCSegAlgoSK.cc.

virtual CSCSegAlgoSK::~CSCSegAlgoSK ( )
inlinevirtual

Destructor.

Definition at line 63 of file CSCSegAlgoSK.h.

63 {};

Member Function Documentation

bool CSCSegAlgoSK::addHit ( const CSCRecHit2D hit,
int  layer 
)
private

Utility functions.

Definition at line 375 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::areHitsCloseInGlobalPhi ( const CSCRecHit2D h1,
const CSCRecHit2D h2 
) const
private

Definition at line 251 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::areHitsCloseInLocalX ( const CSCRecHit2D h1,
const CSCRecHit2D h2 
) const
private

Utility functions.

Definition at line 244 of file CSCSegAlgoSK.cc.

std::vector< CSCSegment > CSCSegAlgoSK::buildSegments ( const ChamberHitContainer rechits)

Build track segments in this chamber (this is where the actual segment-building algorithm hides.)

Definition at line 48 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::compareProtoSegment ( const CSCRecHit2D h,
int  layer 
)
private

Definition at line 428 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::dumpHits ( const ChamberHitContainer rechits) const
private

Dump position and phi of each rechit in chamber after sort in z

Definition at line 325 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::dumpSegment ( const CSCSegment seg) const
private

Definition at line 479 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::flagHitsAsUsed ( const ChamberHitContainer rechitsInChamber,
BoolContainer used 
) const
private

Flag hits on segment as used

Definition at line 360 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::hasHitOnLayer ( int  layer) const
private

Definition at line 402 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::increaseProtoSegment ( const CSCRecHit2D h,
int  layer 
)
private

Definition at line 452 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::isHitNearSegment ( const CSCRecHit2D h) const
private

Definition at line 272 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::isSegmentGood ( const ChamberHitContainer rechitsInChamber) const
private

Return true if segment is 'good'. In this algorithm, 'good' means has sufficient hits

Definition at line 342 of file CSCSegAlgoSK.cc.

float CSCSegAlgoSK::phiAtZ ( float  z) const
private

Definition at line 302 of file CSCSegAlgoSK.cc.

bool CSCSegAlgoSK::replaceHit ( const CSCRecHit2D h,
int  layer 
)
private

Definition at line 414 of file CSCSegAlgoSK.cc.

std::vector< CSCSegment > CSCSegAlgoSK::run ( const CSCChamber aChamber,
const ChamberHitContainer rechits 
)

Here we must implement the algorithm

Definition at line 43 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::tryAddingHitsToSegment ( const ChamberHitContainer rechitsInChamber,
const BoolContainer used,
const LayerIndex layerIndex,
const ChamberHitContainerCIt  i1,
const ChamberHitContainerCIt  i2 
)
private

Try adding non-used hits to segment

Definition at line 201 of file CSCSegAlgoSK.cc.

void CSCSegAlgoSK::updateParameters ( void  )
private

Definition at line 394 of file CSCSegAlgoSK.cc.

Member Data Documentation

float CSCSegAlgoSK::chi2Max
private

Definition at line 130 of file CSCSegAlgoSK.h.

bool CSCSegAlgoSK::debugInfo
private

Definition at line 133 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::dPhiFineMax
private

Definition at line 129 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::dPhiMax
private

Definition at line 127 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::dRPhiFineMax
private

Definition at line 128 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::dRPhiMax
private

Definition at line 126 of file CSCSegAlgoSK.h.

int CSCSegAlgoSK::minLayersApart
private

Definition at line 132 of file CSCSegAlgoSK.h.

const std::string CSCSegAlgoSK::myName
private

Definition at line 123 of file CSCSegAlgoSK.h.

ChamberHitContainer CSCSegAlgoSK::proto_segment
private

Definition at line 122 of file CSCSegAlgoSK.h.

CSCSegFit* CSCSegAlgoSK::sfit_
private

Definition at line 135 of file CSCSegAlgoSK.h.

const CSCChamber* CSCSegAlgoSK::theChamber
private

Definition at line 121 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::wideSeg
private

Definition at line 131 of file CSCSegAlgoSK.h.

float CSCSegAlgoSK::windowScale
private

Definition at line 125 of file CSCSegAlgoSK.h.