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
CSCSegAlgoST Class Reference

#include <CSCSegAlgoST.h>

Inheritance diagram for CSCSegAlgoST:
CSCSegmentAlgorithm

Public Types

typedef std::deque< bool > BoolContainer
 
typedef std::vector< const
CSCRecHit2D * > 
ChamberHitContainer
 Typedefs. More...
 
typedef std::vector
< std::vector< const
CSCRecHit2D * > > 
Segments
 

Public Member Functions

std::vector< CSCSegmentbuildSegments (const ChamberHitContainer &rechits)
 
std::vector< CSCSegmentbuildSegments2 (const ChamberHitContainer &rechits)
 
std::vector< std::vector
< const CSCRecHit2D * > > 
chainHits (const CSCChamber *aChamber, const ChamberHitContainer &rechits)
 
std::vector< std::vector
< const CSCRecHit2D * > > 
clusterHits (const CSCChamber *aChamber, const ChamberHitContainer &rechits)
 
 CSCSegAlgoST (const edm::ParameterSet &ps)
 Constructor. More...
 
std::vector< CSCSegmentprune_bad_hits (const CSCChamber *aChamber, std::vector< CSCSegment > &segments)
 
std::vector< CSCSegmentrun (const CSCChamber *aChamber, const ChamberHitContainer &rechits)
 
virtual ~CSCSegAlgoST ()
 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 adjustCovariance (void)
 
const CSCChamberchamber () const
 
void ChooseSegments (void)
 
void ChooseSegments2 (int best_seg)
 
void ChooseSegments2a (std::vector< ChamberHitContainer > &best_segments, int best_seg)
 
void ChooseSegments3 (int best_seg)
 
void ChooseSegments3 (std::vector< ChamberHitContainer > &best_segments, std::vector< float > &best_weight, int best_seg)
 
void dumpSegment (const CSCSegment &seg) const
 
void findDuplicates (std::vector< CSCSegment > &segments)
 
bool isGoodToMerge (bool isME11a, ChamberHitContainer &newChain, ChamberHitContainer &oldChain)
 
const edm::ParameterSetpset (void) const
 
double theWeight (double coordinate_1, double coordinate_2, double coordinate_3, float layer_1, float layer_2, float layer_3)
 Utility functions. More...
 

Private Attributes

float a_yweightPenaltyThreshold [5][5]
 
bool adjustCovariance_
 
double BPMinImprovement
 
bool BrutePruning
 
double chi2Norm_3D_
 
std::vector< ChamberHitContainerchosen_Psegments
 
std::vector< float > chosen_weight_A
 
bool condpass1
 Flag whether to 'improve' covariance matrix. More...
 
bool condpass2
 
std::vector< float > curv_A
 
std::vector< float > curv_noL1_A
 
std::vector< float > curv_noL2_A
 
std::vector< float > curv_noL3_A
 
std::vector< float > curv_noL4_A
 
std::vector< float > curv_noL5_A
 
std::vector< float > curv_noL6_A
 
double curvePenalty
 
double curvePenaltyThreshold
 
bool debug
 
double dXclusBoxMax
 
double dYclusBoxMax
 
Segments GoodSegments
 
double hitDropLimit4Hits
 
double hitDropLimit5Hits
 
double hitDropLimit6Hits
 
int maxRecHitsInCluster
 
int minHitsPerSegment
 
const std::string myName_
 
bool onlyBestSegment
 
ChamberHitContainer PAhits_onLayer [6]
 
bool preClustering
 
bool preClustering_useChaining
 
bool prePrun_
 Chi^2 normalization for the initial fit. More...
 
double prePrunLimit_
 
ChamberHitContainer protoSegment
 
bool Pruning
 
const edm::ParameterSet ps_
 
std::vector< ChamberHitContainerPsegments
 
ChamberHitContainer Psegments_hits
 
std::vector< ChamberHitContainerPsegments_noL1
 
std::vector< ChamberHitContainerPsegments_noL2
 
std::vector< ChamberHitContainerPsegments_noL3
 
std::vector< ChamberHitContainerPsegments_noL4
 
std::vector< ChamberHitContainerPsegments_noL5
 
std::vector< ChamberHitContainerPsegments_noL6
 
std::vector< ChamberHitContainerPsegments_noLx
 
CSCSegAlgoShoweringshowering_
 
const CSCChambertheChamber
 
bool useShowering
 
std::vector< float > weight_A
 
std::vector< float > weight_B
 
std::vector< float > weight_noL1_A
 
std::vector< float > weight_noL1_B
 
std::vector< float > weight_noL2_A
 
std::vector< float > weight_noL2_B
 
std::vector< float > weight_noL3_A
 
std::vector< float > weight_noL3_B
 
std::vector< float > weight_noL4_A
 
std::vector< float > weight_noL4_B
 
std::vector< float > weight_noL5_A
 
std::vector< float > weight_noL5_B
 
std::vector< float > weight_noL6_A
 
std::vector< float > weight_noL6_B
 
std::vector< float > weight_noLx_A
 
double yweightPenalty
 
double yweightPenaltyThreshold
 

Detailed Description

This algorithm is based on the Minimum Spanning Tree (ST) approach for building endcap muon track segments out of the rechit's in a CSCChamber.

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

This builds segments consisting of at least 3 hits. Segments can share a common rechit, but only one.

Authors
S. Stoynev - NWU I. Bloch - FNAL E. James - FNAL A. Sakharov - WSU (extensive revision to handle weird segments) ... ... ... T. Cox - UC Davis (struggling to handle this monster)

Definition at line 32 of file CSCSegAlgoST.h.

Member Typedef Documentation

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

Definition at line 41 of file CSCSegAlgoST.h.

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

Typedefs.

Definition at line 39 of file CSCSegAlgoST.h.

typedef std::vector< std::vector<const CSCRecHit2D* > > CSCSegAlgoST::Segments

Definition at line 40 of file CSCSegAlgoST.h.

Constructor & Destructor Documentation

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

Constructor.

CSCSegAlgoST.cc

Authors
: S. Stoynev - NU I. Bloch - FNAL E. James - FNAL A. Sakharov - WSU T. Cox - UC Davis - segment fit factored out of entangled code - Jan 2015

Improve the covariance matrix?

Definition at line 33 of file CSCSegAlgoST.cc.

CSCSegAlgoST::~CSCSegAlgoST ( )
virtual

Destructor.

Definition at line 82 of file CSCSegAlgoST.cc.

Member Function Documentation

bool CSCSegAlgoST::adjustCovariance ( void  )
inlineprivate

Definition at line 89 of file CSCSegAlgoST.h.

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

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

Definition at line 666 of file CSCSegAlgoST.cc.

std::vector<CSCSegment> CSCSegAlgoST::buildSegments2 ( const ChamberHitContainer rechits)

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

std::vector< std::vector< const CSCRecHit2D * > > CSCSegAlgoST::chainHits ( const CSCChamber aChamber,
const ChamberHitContainer rechits 
)

Definition at line 512 of file CSCSegAlgoST.cc.

const CSCChamber* CSCSegAlgoST::chamber ( ) const
inlineprivate

Definition at line 112 of file CSCSegAlgoST.h.

void CSCSegAlgoST::ChooseSegments ( void  )
private
void CSCSegAlgoST::ChooseSegments2 ( int  best_seg)
private

Definition at line 1681 of file CSCSegAlgoST.cc.

void CSCSegAlgoST::ChooseSegments2a ( std::vector< ChamberHitContainer > &  best_segments,
int  best_seg 
)
private

Definition at line 1623 of file CSCSegAlgoST.cc.

void CSCSegAlgoST::ChooseSegments3 ( int  best_seg)
private
void CSCSegAlgoST::ChooseSegments3 ( std::vector< ChamberHitContainer > &  best_segments,
std::vector< float > &  best_weight,
int  best_seg 
)
private

Definition at line 1629 of file CSCSegAlgoST.cc.

std::vector< std::vector< const CSCRecHit2D * > > CSCSegAlgoST::clusterHits ( const CSCChamber aChamber,
const ChamberHitContainer rechits 
)

Build groups of rechits that are separated in x and y to save time on the segment finding

Definition at line 396 of file CSCSegAlgoST.cc.

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

Definition at line 1759 of file CSCSegAlgoST.cc.

void CSCSegAlgoST::findDuplicates ( std::vector< CSCSegment > &  segments)
private

Definition at line 1732 of file CSCSegAlgoST.cc.

bool CSCSegAlgoST::isGoodToMerge ( bool  isME11a,
ChamberHitContainer newChain,
ChamberHitContainer oldChain 
)
private

Definition at line 588 of file CSCSegAlgoST.cc.

std::vector< CSCSegment > CSCSegAlgoST::prune_bad_hits ( const CSCChamber aChamber,
std::vector< CSCSegment > &  segments 
)

Remove bad hits from found segments based not only on chi2, but also on charge and further "low level" chamber information.

Definition at line 181 of file CSCSegAlgoST.cc.

const edm::ParameterSet& CSCSegAlgoST::pset ( void  ) const
inlineprivate

Definition at line 86 of file CSCSegAlgoST.h.

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

Build segments for all desired groups of hits

Definition at line 87 of file CSCSegAlgoST.cc.

double CSCSegAlgoST::theWeight ( double  coordinate_1,
double  coordinate_2,
double  coordinate_3,
float  layer_1,
float  layer_2,
float  layer_3 
)
private

Utility functions.

Definition at line 653 of file CSCSegAlgoST.cc.

Member Data Documentation

float CSCSegAlgoST::a_yweightPenaltyThreshold[5][5]
private

Definition at line 182 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::adjustCovariance_
private

Definition at line 191 of file CSCSegAlgoST.h.

double CSCSegAlgoST::BPMinImprovement
private

Definition at line 174 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::BrutePruning
private

Definition at line 173 of file CSCSegAlgoST.h.

double CSCSegAlgoST::chi2Norm_3D_
private

Definition at line 195 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::chosen_Psegments
private

Definition at line 133 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::chosen_weight_A
private

Definition at line 142 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::condpass1
private

Flag whether to 'improve' covariance matrix.

Definition at line 193 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::condpass2
private

Definition at line 193 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_A
private

Definition at line 143 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL1_A
private

Definition at line 144 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL2_A
private

Definition at line 145 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL3_A
private

Definition at line 146 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL4_A
private

Definition at line 147 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL5_A
private

Definition at line 148 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::curv_noL6_A
private

Definition at line 149 of file CSCSegAlgoST.h.

double CSCSegAlgoST::curvePenalty
private

Definition at line 188 of file CSCSegAlgoST.h.

double CSCSegAlgoST::curvePenaltyThreshold
private

Definition at line 187 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::debug
private

Definition at line 161 of file CSCSegAlgoST.h.

double CSCSegAlgoST::dXclusBoxMax
private

Definition at line 167 of file CSCSegAlgoST.h.

double CSCSegAlgoST::dYclusBoxMax
private

Definition at line 168 of file CSCSegAlgoST.h.

Segments CSCSegAlgoST::GoodSegments
private

Definition at line 120 of file CSCSegAlgoST.h.

double CSCSegAlgoST::hitDropLimit4Hits
private

Definition at line 178 of file CSCSegAlgoST.h.

double CSCSegAlgoST::hitDropLimit5Hits
private

Definition at line 179 of file CSCSegAlgoST.h.

double CSCSegAlgoST::hitDropLimit6Hits
private

Definition at line 180 of file CSCSegAlgoST.h.

int CSCSegAlgoST::maxRecHitsInCluster
private

Definition at line 169 of file CSCSegAlgoST.h.

int CSCSegAlgoST::minHitsPerSegment
private

Definition at line 164 of file CSCSegAlgoST.h.

const std::string CSCSegAlgoST::myName_
private

Definition at line 115 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::onlyBestSegment
private

Definition at line 175 of file CSCSegAlgoST.h.

ChamberHitContainer CSCSegAlgoST::PAhits_onLayer[6]
private

Definition at line 122 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::preClustering
private

Definition at line 170 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::preClustering_useChaining
private

Definition at line 171 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::prePrun_
private

Chi^2 normalization for the initial fit.

Definition at line 197 of file CSCSegAlgoST.h.

double CSCSegAlgoST::prePrunLimit_
private

Allow to prune a (rechit in a) segment in segment buld method once it passed through Chi^2-X and chi2uCorrection is big.

Definition at line 199 of file CSCSegAlgoST.h.

ChamberHitContainer CSCSegAlgoST::protoSegment
private

Definition at line 158 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::Pruning
private

Definition at line 172 of file CSCSegAlgoST.h.

const edm::ParameterSet CSCSegAlgoST::ps_
private

Definition at line 116 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments
private

Definition at line 125 of file CSCSegAlgoST.h.

ChamberHitContainer CSCSegAlgoST::Psegments_hits
private

Definition at line 123 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL1
private

Definition at line 127 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL2
private

Definition at line 128 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL3
private

Definition at line 129 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL4
private

Definition at line 130 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL5
private

Definition at line 131 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noL6
private

Definition at line 132 of file CSCSegAlgoST.h.

std::vector< ChamberHitContainer > CSCSegAlgoST::Psegments_noLx
private

Definition at line 126 of file CSCSegAlgoST.h.

CSCSegAlgoShowering* CSCSegAlgoST::showering_
private

Definition at line 117 of file CSCSegAlgoST.h.

const CSCChamber* CSCSegAlgoST::theChamber
private

Definition at line 119 of file CSCSegAlgoST.h.

bool CSCSegAlgoST::useShowering
private

Definition at line 176 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_A
private

Definition at line 134 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_B
private

Definition at line 150 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL1_A
private

Definition at line 136 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL1_B
private

Definition at line 151 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL2_A
private

Definition at line 137 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL2_B
private

Definition at line 152 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL3_A
private

Definition at line 138 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL3_B
private

Definition at line 153 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL4_A
private

Definition at line 139 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL4_B
private

Definition at line 154 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL5_A
private

Definition at line 140 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL5_B
private

Definition at line 155 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL6_A
private

Definition at line 141 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noL6_B
private

Definition at line 156 of file CSCSegAlgoST.h.

std::vector< float > CSCSegAlgoST::weight_noLx_A
private

Definition at line 135 of file CSCSegAlgoST.h.

double CSCSegAlgoST::yweightPenalty
private

Definition at line 185 of file CSCSegAlgoST.h.

double CSCSegAlgoST::yweightPenaltyThreshold
private

Definition at line 184 of file CSCSegAlgoST.h.