1 #ifndef CSCSegment_CSCSegAlgoST_h
2 #define CSCSegment_CSCSegAlgoST_h
30 #include <Math/Functions.h>
31 #include <Math/SVector.h>
32 #include <Math/SMatrix.h>
46 typedef std::vector < std::vector<const CSCRecHit2D* > >
Segments;
50 typedef ROOT::Math::SMatrix<double,12,12,ROOT::Math::MatRepSym<double,12> >
SMatrixSym12;
56 typedef ROOT::Math::SMatrix<double, 4 >
SMatrix4;
57 typedef ROOT::Math::SMatrix<double,4,4,ROOT::Math::MatRepSym<double,4> >
SMatrixSym4;
60 typedef ROOT::Math::SMatrix<double,2,2,ROOT::Math::MatRepSym<double,2> >
SMatrixSym2;
63 typedef ROOT::Math::SVector<double,4>
SVector4;
108 double theWeight(
double coordinate_1,
double coordinate_2,
double coordinate_3,
float layer_1,
float layer_2,
float layer_3);
113 void ChooseSegments2a(std::vector< ChamberHitContainer > & best_segments,
int best_seg);
119 void ChooseSegments3(std::vector< ChamberHitContainer > & best_segments, std::vector< float > & best_weight,
int best_seg);
double yweightPenaltyThreshold
double protoChiUCorrection
Allow to correct the error matrix.
bool preClustering_useChaining
bool passCondNumber
The number to force the Covariance.
void doSlopesAndChi2(void)
std::vector< ChamberHitContainer > Psegments_noL5
std::vector< float > curv_noL2_A
const CSCChamber * chamber() const
void dumpSegment(const CSCSegment &seg) const
const CSCChamber * theChamber
std::vector< float > weight_noL4_A
void correctTheCovX(void)
std::vector< float > curv_noL6_A
std::vector< CSCSegment > run(const CSCChamber *aChamber, const ChamberHitContainer &rechits)
std::vector< std::vector< const CSCRecHit2D * > > Segments
void ChooseSegments2(int best_seg)
void ChooseSegments3(int best_seg)
std::vector< float > weight_noL3_B
std::vector< ChamberHitContainer > Psegments_noL1
CSCSegAlgoST(const edm::ParameterSet &ps)
Constructor.
bool isGoodToMerge(bool isME11a, ChamberHitContainer &newChain, ChamberHitContainer &oldChain)
std::vector< CSCSegment > buildSegments2(const ChamberHitContainer &rechits)
void correctTheCovMatrix(SMatrixSym2 &IC)
std::vector< ChamberHitContainer > chosen_Psegments
std::vector< ChamberHitContainer > Psegments
ChamberHitContainer protoSegment
ROOT::Math::SVector< double, 4 > SVector4
std::vector< std::vector< const CSCRecHit2D * > > clusterHits(const CSCChamber *aChamber, const ChamberHitContainer &rechits)
double condSeed1_
The upper limit of protoChiUCorrection to apply prePrun.
LocalVector protoDirection
std::vector< float > weight_noL3_A
CSCSegAlgoShowering * showering_
virtual ~CSCSegAlgoST()
Destructor.
double covAnyNumber_
Allow to use any number for covariance for all RecHits.
std::vector< ChamberHitContainer > Psegments_noLx
double curvePenaltyThreshold
std::vector< std::vector< const CSCRecHit2D * > > chainHits(const CSCChamber *aChamber, const ChamberHitContainer &rechits)
std::vector< ChamberHitContainer > Psegments_noL4
std::vector< float > weight_A
std::vector< float > weight_noL1_B
std::vector< CSCSegment > buildSegments(const ChamberHitContainer &rechits)
std::vector< CSCSegment > prune_bad_hits(const CSCChamber *aChamber, std::vector< CSCSegment > &segments)
std::vector< float > curv_noL5_A
std::vector< ChamberHitContainer > Psegments_noL6
SMatrix12by4 derivativeMatrix(void) const
unsigned maxContrIndex
Chi^2 normalization for the initial fit.
std::vector< const CSCRecHit2D * > ChamberHitContainer
Typedefs.
std::vector< ChamberHitContainer > Psegments_noL2
ROOT::Math::SMatrix< double, 4 > SMatrix4
std::vector< float > weight_noL5_A
bool passCondNumber_2
Passage the condition number calculations.
ROOT::Math::SMatrix< double, 12, 12, ROOT::Math::MatRepSym< double, 12 > > SMatrixSym12
std::vector< float > weight_noL1_A
std::vector< float > curv_noL4_A
std::vector< float > weight_noL2_A
std::vector< float > chosen_weight_A
bool correctCov_
Correct the Error Matrix.
ChamberHitContainer Psegments_hits
void findDuplicates(std::vector< CSCSegment > &segments)
std::vector< float > curv_noL1_A
void fillChiSquared(void)
SMatrixSym4 calculateError(void) const
bool covToAnyNumberAll_
Allow to use any number for covariance (by hand)
double theWeight(double coordinate_1, double coordinate_2, double coordinate_3, float layer_1, float layer_2, float layer_3)
Utility functions.
std::deque< bool > BoolContainer
std::vector< float > curv_A
ROOT::Math::SMatrix< double, 4, 4, ROOT::Math::MatRepSym< double, 4 > > SMatrixSym4
bool prePrun_
The index of the worst x RecHit in Chi^2-X method.
ROOT::Math::SMatrix< double, 12, 4 > SMatrix12by4
void ChooseSegments(void)
CLHEP::HepSymMatrix AlgebraicSymMatrix
std::vector< float > weight_noL5_B
std::vector< float > weight_B
float a_yweightPenaltyThreshold[5][5]
void ChooseSegments2a(std::vector< ChamberHitContainer > &best_segments, int best_seg)
std::vector< double > e_Cxx
void fillLocalDirection(void)
ROOT::Math::SMatrix< double, 2, 2, ROOT::Math::MatRepSym< double, 2 > > SMatrixSym2
std::vector< float > weight_noL6_A
std::vector< float > weight_noL2_B
bool covToAnyNumber_
The correction parameters.
std::vector< float > weight_noLx_A
std::vector< float > curv_noL3_A
std::vector< float > weight_noL6_B
SMatrixSym12 weightMatrix(void) const
AlgebraicSymMatrix flipErrors(const SMatrixSym4 &) const
ChamberHitContainer PAhits_onLayer[6]
LocalPoint protoIntercept
std::vector< float > weight_noL4_B
std::vector< ChamberHitContainer > Psegments_noL3
double chi2Norm_3D_
Chi^2 normalization for the corrected fit.