CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ME0SegAlgoMM.h
Go to the documentation of this file.
1 #ifndef GEMRecHit_ME0SegAlgoMM_h
2 #define GEMRecHit_ME0SegAlgoMM_h
3 
18 
19 #include <deque>
20 #include <vector>
21 
22 class ME0SegFit;
23 
25 
26 
27 public:
28 
30  typedef std::vector<const ME0RecHit*> EnsembleHitContainer;
31  typedef std::vector<EnsembleHitContainer> ProtoSegments;
32 
34  explicit ME0SegAlgoMM(const edm::ParameterSet& ps);
36  virtual ~ME0SegAlgoMM();
37 
41  std::vector<ME0Segment> run(const ME0Ensemble& ensemble, const EnsembleHitContainer& rechits);
42 
43 private:
45 
46  // Build groups of rechits that are separated in x and y to save time on the segment finding
48 
49  // Build groups of rechits that are separated in strip numbers and Z to save time on the segment finding
51 
52  bool isGoodToMerge(const EnsembleHitContainer& newChain, const EnsembleHitContainer& oldChain);
53 
54  // Build track segments in this chamber (this is where the actual segment-building algorithm hides.)
55  std::vector<ME0Segment> buildSegments(const EnsembleHitContainer& rechits);
56 
57  // Member variables
58  private:
60 
61  // input from .cfi file
62  private:
63  bool debug;
64  unsigned int minHitsPerSegment;
66  double dXclusBoxMax;
67  double dYclusBoxMax;
72 
73  private:
76 
77  static constexpr float running_max=999999.;
78  std::unique_ptr<ME0SegFit> sfit_;
79 
80 };
81 
82 #endif
std::vector< const ME0RecHit * > EnsembleHitContainer
Typedefs.
Definition: ME0SegAlgoMM.h:30
ProtoSegments clusterHits(const EnsembleHitContainer &rechits)
Utility functions.
Definition: ME0SegAlgoMM.cc:90
std::vector< EnsembleHitContainer > ProtoSegments
Definition: ME0SegAlgoMM.h:31
bool preClustering_useChaining
Definition: ME0SegAlgoMM.h:68
ME0SegAlgoMM(const edm::ParameterSet &ps)
Constructor.
Definition: ME0SegAlgoMM.cc:25
std::pair< const ME0EtaPartition *, std::map< uint32_t, const ME0EtaPartition * > > ME0Ensemble
std::unique_ptr< ME0SegFit > sfit_
Definition: ME0SegAlgoMM.h:78
ME0Ensemble theEnsemble
Definition: ME0SegAlgoMM.h:75
#define constexpr
bool preClustering
Definition: ME0SegAlgoMM.h:65
bool isGoodToMerge(const EnsembleHitContainer &newChain, const EnsembleHitContainer &oldChain)
unsigned int minHitsPerSegment
Definition: ME0SegAlgoMM.h:64
std::vector< ME0Segment > run(const ME0Ensemble &ensemble, const EnsembleHitContainer &rechits)
Definition: ME0SegAlgoMM.cc:45
int maxRecHitsInCluster
Definition: ME0SegAlgoMM.h:71
double dPhiChainBoxMax
Definition: ME0SegAlgoMM.h:69
double dXclusBoxMax
Definition: ME0SegAlgoMM.h:66
ProtoSegments chainHits(const EnsembleHitContainer &rechits)
std::vector< ME0Segment > buildSegments(const EnsembleHitContainer &rechits)
EnsembleHitContainer proto_segment
Definition: ME0SegAlgoMM.h:74
virtual ~ME0SegAlgoMM()
Destructor.
Definition: ME0SegAlgoMM.cc:41
double dEtaChainBoxMax
Definition: ME0SegAlgoMM.h:70
static float running_max
Definition: ME0SegAlgoMM.h:77
double dYclusBoxMax
Definition: ME0SegAlgoMM.h:67
const std::string myName
Definition: ME0SegAlgoMM.h:59