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 public:
51 
52  typedef std::vector<int> LayerIndex;
53  typedef std::vector<const CSCRecHit2D*> ChamberHitContainer;
54  typedef std::vector<const CSCRecHit2D*>::const_iterator ChamberHitContainerCIt;
55  typedef std::deque<bool> BoolContainer;
56 
58  explicit CSCSegAlgoDF(const edm::ParameterSet& ps);
59 
61  ~CSCSegAlgoDF() override;
62 
67  std::vector<CSCSegment> buildSegments(const ChamberHitContainer& rechits);
68 
72  std::vector<CSCSegment> run(const CSCChamber* aChamber, const ChamberHitContainer& rechits) override;
73 
74 private:
76 
89  void tryAddingHitsToSegment(const ChamberHitContainer& rechitsInChamber,
92  const LayerIndex& layerIndex);
93 
97  void flagHitsAsUsed(const ChamberHitContainer& rechitsInChamber);
98 
102  void pruneFromResidual(void);
103 
104  bool isHitNearSegment(const CSCRecHit2D* h) const;
105  bool addHit(const CSCRecHit2D* hit, int layer);
106  void updateParameters(void);
107  bool hasHitOnLayer(int layer) const;
108  void compareProtoSegment(const CSCRecHit2D* h, int layer);
109  void dumpSegment(const CSCSegment& seg) const;
110 
111  // Member variables
115 
117 
120 
121  // input from .cfi file
122  bool debug;
125  // bool testSeg;
126  bool Pruning;
129  // float nSigmaFromSegment;
131  // int muonsPerChamberMax;
132  double dRPhiFineMax;
133  double dPhiFineMax;
134  float tanPhiMax;
135  float tanThetaMax;
136  float chi2Max;
138 
142 };
143 
144 #endif
void tryAddingHitsToSegment(const ChamberHitContainer &rechitsInChamber, const ChamberHitContainerCIt i1, const ChamberHitContainerCIt i2, const LayerIndex &layerIndex)
Utility functions.
ChamberHitContainer protoSegment
Definition: CSCSegAlgoDF.h:118
std::vector< const CSCRecHit2D * > ChamberHitContainer
Definition: CSCSegAlgoDF.h:53
std::vector< const CSCRecHit2D * >::const_iterator ChamberHitContainerCIt
Definition: CSCSegAlgoDF.h:54
bool isHitNearSegment(const CSCRecHit2D *h) const
CSCSegAlgoPreClustering * preCluster_
Definition: CSCSegAlgoDF.h:139
ChamberHitContainer closeHits
Definition: CSCSegAlgoDF.h:116
bool addHit(const CSCRecHit2D *hit, int layer)
bool hasHitOnLayer(int layer) const
CSCSegAlgoDF(const edm::ParameterSet &ps)
Constructor.
Definition: CSCSegAlgoDF.cc:34
CSCSegAlgoShowering * showering_
Definition: CSCSegAlgoDF.h:140
ChamberHitContainer secondSeedHits
Definition: CSCSegAlgoDF.h:119
bool preClustering
Definition: CSCSegAlgoDF.h:123
std::vector< CSCSegment > buildSegments(const ChamberHitContainer &rechits)
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
const std::string myName
Definition: CSCSegAlgoDF.h:112
void dumpSegment(const CSCSegment &seg) const
CSCSegFit * sfit_
Definition: CSCSegAlgoDF.h:141
void updateParameters(void)
std::deque< bool > BoolContainer
Definition: CSCSegAlgoDF.h:55
void compareProtoSegment(const CSCRecHit2D *h, int layer)
std::vector< int > LayerIndex
Typedefs.
Definition: CSCSegAlgoDF.h:52
float maxRatioResidual
Definition: CSCSegAlgoDF.h:137
int minHitsForPreClustering
Definition: CSCSegAlgoDF.h:124
void flagHitsAsUsed(const ChamberHitContainer &rechitsInChamber)
float tanThetaMax
Definition: CSCSegAlgoDF.h:135
void pruneFromResidual(void)
double dPhiFineMax
Definition: CSCSegAlgoDF.h:133
std::vector< CSCSegment > run(const CSCChamber *aChamber, const ChamberHitContainer &rechits) override
Definition: CSCSegAlgoDF.cc:65
double dRPhiFineMax
Definition: CSCSegAlgoDF.h:132
~CSCSegAlgoDF() override
Destructor.
Definition: CSCSegAlgoDF.cc:57
const CSCChamber * theChamber
Definition: CSCSegAlgoDF.h:113
int minHitsPerSegment
Definition: CSCSegAlgoDF.h:130
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
int nHitsPerClusterIsShower
Definition: CSCSegAlgoDF.h:128
BoolContainer usedHits
Definition: CSCSegAlgoDF.h:114