CMS 3D CMS Logo

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 class CSCSegFit;
47 
49 
50 public:
51 
52 
54 
55  typedef std::vector<int> LayerIndex;
56  typedef std::vector<const CSCRecHit2D*> ChamberHitContainer;
57  typedef std::vector<const CSCRecHit2D*>::const_iterator ChamberHitContainerCIt;
58  typedef std::deque<bool> BoolContainer;
59 
61  explicit CSCSegAlgoDF(const edm::ParameterSet& ps);
62 
64  ~CSCSegAlgoDF() override;
65 
70  std::vector<CSCSegment> buildSegments(const ChamberHitContainer& rechits);
71 
75  std::vector<CSCSegment> run(const CSCChamber* aChamber, const ChamberHitContainer& rechits) override;
76 
77 private:
78 
80 
93  void tryAddingHitsToSegment( const ChamberHitContainer& rechitsInChamber,
94  const ChamberHitContainerCIt i1,
95  const ChamberHitContainerCIt i2,
96  const LayerIndex& layerIndex);
97 
101  void flagHitsAsUsed(const ChamberHitContainer& rechitsInChamber);
102 
106  void pruneFromResidual(void);
107 
108  bool isHitNearSegment(const CSCRecHit2D* h) const;
109  bool addHit(const CSCRecHit2D* hit, int layer);
110  void updateParameters(void);
111  bool hasHitOnLayer(int layer) const;
112  void compareProtoSegment(const CSCRecHit2D* h, int layer);
113  void dumpSegment( const CSCSegment& seg ) const;
114 
115  // Member variables
118  BoolContainer usedHits;
119 
120  ChamberHitContainer closeHits;
121 
122  ChamberHitContainer protoSegment;
123  ChamberHitContainer secondSeedHits;
124 
125  // input from .cfi file
126  bool debug;
129  // bool testSeg;
130  bool Pruning;
133  // float nSigmaFromSegment;
135  // int muonsPerChamberMax;
136  double dRPhiFineMax;
137  double dPhiFineMax;
138  float tanPhiMax;
139  float tanThetaMax;
140  float chi2Max;
142 
146 
147 };
148 
149 #endif
void tryAddingHitsToSegment(const ChamberHitContainer &rechitsInChamber, const ChamberHitContainerCIt i1, const ChamberHitContainerCIt i2, const LayerIndex &layerIndex)
Utility functions.
ChamberHitContainer protoSegment
Definition: CSCSegAlgoDF.h:122
std::vector< const CSCRecHit2D * > ChamberHitContainer
Definition: CSCSegAlgoDF.h:56
std::vector< const CSCRecHit2D * >::const_iterator ChamberHitContainerCIt
Definition: CSCSegAlgoDF.h:57
CSCSegAlgoPreClustering * preCluster_
Definition: CSCSegAlgoDF.h:143
ChamberHitContainer closeHits
Definition: CSCSegAlgoDF.h:120
bool addHit(const CSCRecHit2D *hit, int layer)
bool isHitNearSegment(const CSCRecHit2D *h) const
CSCSegAlgoDF(const edm::ParameterSet &ps)
Constructor.
Definition: CSCSegAlgoDF.cc:35
CSCSegAlgoShowering * showering_
Definition: CSCSegAlgoDF.h:144
ChamberHitContainer secondSeedHits
Definition: CSCSegAlgoDF.h:123
bool preClustering
Definition: CSCSegAlgoDF.h:127
std::vector< CSCSegment > buildSegments(const ChamberHitContainer &rechits)
const std::string myName
Definition: CSCSegAlgoDF.h:116
CSCSegFit * sfit_
Definition: CSCSegAlgoDF.h:145
void updateParameters(void)
std::deque< bool > BoolContainer
Definition: CSCSegAlgoDF.h:58
void compareProtoSegment(const CSCRecHit2D *h, int layer)
void dumpSegment(const CSCSegment &seg) const
std::vector< int > LayerIndex
Typedefs.
Definition: CSCSegAlgoDF.h:55
float maxRatioResidual
Definition: CSCSegAlgoDF.h:141
int minHitsForPreClustering
Definition: CSCSegAlgoDF.h:128
void flagHitsAsUsed(const ChamberHitContainer &rechitsInChamber)
float tanThetaMax
Definition: CSCSegAlgoDF.h:139
void pruneFromResidual(void)
double dPhiFineMax
Definition: CSCSegAlgoDF.h:137
std::vector< CSCSegment > run(const CSCChamber *aChamber, const ChamberHitContainer &rechits) override
Definition: CSCSegAlgoDF.cc:69
double dRPhiFineMax
Definition: CSCSegAlgoDF.h:136
~CSCSegAlgoDF() override
Destructor.
Definition: CSCSegAlgoDF.cc:60
const CSCChamber * theChamber
Definition: CSCSegAlgoDF.h:117
int minHitsPerSegment
Definition: CSCSegAlgoDF.h:134
int nHitsPerClusterIsShower
Definition: CSCSegAlgoDF.h:132
BoolContainer usedHits
Definition: CSCSegAlgoDF.h:118
bool hasHitOnLayer(int layer) const