CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CSCSegAlgoDF.h
Go to the documentation of this file.
1 #ifndef CSCSegment_CSCSegAlgoDF_h
2 #define CSCSegment_CSCSegAlgoDF_h
3 
40 
41 #include <deque>
42 #include <vector>
43 
46 
48 
49 public:
50 
51 
53 
54  typedef std::vector<int> LayerIndex;
55  typedef std::vector<const CSCRecHit2D*> ChamberHitContainer;
56  typedef std::vector<const CSCRecHit2D*>::const_iterator ChamberHitContainerCIt;
57  typedef std::deque<bool> BoolContainer;
58 
60  explicit CSCSegAlgoDF(const edm::ParameterSet& ps);
61 
63  virtual ~CSCSegAlgoDF();
64 
69  std::vector<CSCSegment> buildSegments(ChamberHitContainer rechits);
70 
74  std::vector<CSCSegment> run(const CSCChamber* aChamber, ChamberHitContainer rechits);
75 
76 private:
77 
79 
92  void tryAddingHitsToSegment( const ChamberHitContainer& rechitsInChamber,
93  const ChamberHitContainerCIt i1,
94  const ChamberHitContainerCIt i2,
95  LayerIndex layerIndex);
96 
100  void flagHitsAsUsed(const ChamberHitContainer& rechitsInChamber);
101 
105  void pruneFromResidual();
106 
107 
111  void orderSecondSeed( GlobalPoint gp1,
112  const ChamberHitContainerCIt i1,
113  const ChamberHitContainerCIt i2,
115  LayerIndex layerIndex );
116 
117 
118  bool isHitNearSegment(const CSCRecHit2D* h) const;
119  bool addHit(const CSCRecHit2D* hit, int layer);
120  void updateParameters(void);
121  bool hasHitOnLayer(int layer) const;
122  void compareProtoSegment(const CSCRecHit2D* h, int layer);
123  CLHEP::HepMatrix derivativeMatrix(void) const;
124  AlgebraicSymMatrix weightMatrix(void) const;
126  void flipErrors(AlgebraicSymMatrix&) const;
127 
128  // Member variables
129  const std::string myName;
132 
134 
140  double protoChi2;
142 
143  // input from .cfi file
144  bool debug;
147  bool testSeg;
148  bool Pruning;
154  double dRPhiFineMax;
155  double dPhiFineMax;
156  float tanPhiMax;
157  float tanThetaMax;
158  float chi2Max;
160 
163 
164 };
165 
166 #endif
void flipErrors(AlgebraicSymMatrix &) const
std::vector< CSCSegment > run(const CSCChamber *aChamber, ChamberHitContainer rechits)
Definition: CSCSegAlgoDF.cc:65
ChamberHitContainer protoSegment
Definition: CSCSegAlgoDF.h:135
std::vector< const CSCRecHit2D * > ChamberHitContainer
Definition: CSCSegAlgoDF.h:55
std::vector< const CSCRecHit2D * >::const_iterator ChamberHitContainerCIt
Definition: CSCSegAlgoDF.h:56
AlgebraicSymMatrix weightMatrix(void) const
CLHEP::HepMatrix derivativeMatrix(void) const
virtual ~CSCSegAlgoDF()
Destructor.
Definition: CSCSegAlgoDF.cc:56
CSCSegAlgoPreClustering * preCluster_
Definition: CSCSegAlgoDF.h:161
ChamberHitContainer closeHits
Definition: CSCSegAlgoDF.h:133
bool addHit(const CSCRecHit2D *hit, int layer)
void orderSecondSeed(GlobalPoint gp1, const ChamberHitContainerCIt i1, const ChamberHitContainerCIt i2, const ChamberHitContainer &rechits, LayerIndex layerIndex)
bool isHitNearSegment(const CSCRecHit2D *h) const
CSCSegAlgoDF(const edm::ParameterSet &ps)
Constructor.
Definition: CSCSegAlgoDF.cc:32
CSCSegAlgoShowering * showering_
Definition: CSCSegAlgoDF.h:162
int muonsPerChamberMax
Definition: CSCSegAlgoDF.h:153
ChamberHitContainer secondSeedHits
Definition: CSCSegAlgoDF.h:136
bool preClustering
Definition: CSCSegAlgoDF.h:145
const std::string myName
Definition: CSCSegAlgoDF.h:129
void updateParameters(void)
std::deque< bool > BoolContainer
Definition: CSCSegAlgoDF.h:57
LocalPoint protoIntercept
Definition: CSCSegAlgoDF.h:139
void compareProtoSegment(const CSCRecHit2D *h, int layer)
std::vector< CSCSegment > buildSegments(ChamberHitContainer rechits)
std::vector< int > LayerIndex
Typedefs.
Definition: CSCSegAlgoDF.h:54
float maxRatioResidual
Definition: CSCSegAlgoDF.h:159
int minHitsForPreClustering
Definition: CSCSegAlgoDF.h:146
float protoSlope_v
Definition: CSCSegAlgoDF.h:138
void flagHitsAsUsed(const ChamberHitContainer &rechitsInChamber)
float tanThetaMax
Definition: CSCSegAlgoDF.h:157
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
double dPhiFineMax
Definition: CSCSegAlgoDF.h:155
float protoSlope_u
Definition: CSCSegAlgoDF.h:137
float nSigmaFromSegment
Definition: CSCSegAlgoDF.h:151
double dRPhiFineMax
Definition: CSCSegAlgoDF.h:154
void pruneFromResidual()
CLHEP::HepSymMatrix AlgebraicSymMatrix
double protoChi2
Definition: CSCSegAlgoDF.h:140
void tryAddingHitsToSegment(const ChamberHitContainer &rechitsInChamber, const ChamberHitContainerCIt i1, const ChamberHitContainerCIt i2, LayerIndex layerIndex)
Utility functions.
AlgebraicSymMatrix calculateError(void) const
const CSCChamber * theChamber
Definition: CSCSegAlgoDF.h:130
LocalVector protoDirection
Definition: CSCSegAlgoDF.h:141
int minHitsPerSegment
Definition: CSCSegAlgoDF.h:152
int nHitsPerClusterIsShower
Definition: CSCSegAlgoDF.h:150
BoolContainer usedHits
Definition: CSCSegAlgoDF.h:131
bool hasHitOnLayer(int layer) const