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;
73 
74  private:
77 
78  static constexpr float running_max=999999.;
79  std::unique_ptr<ME0SegFit> sfit_;
80 
81 };
82 
83 #endif
std::vector< const ME0RecHit * > EnsembleHitContainer
Typedefs.
Definition: ME0SegAlgoMM.h:30
ProtoSegments clusterHits(const EnsembleHitContainer &rechits)
Utility functions.
std::vector< EnsembleHitContainer > ProtoSegments
Definition: ME0SegAlgoMM.h:31
bool preClustering_useChaining
Definition: ME0SegAlgoMM.h:68
double dTimeChainBoxMax
Definition: ME0SegAlgoMM.h:71
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:79
ME0Ensemble theEnsemble
Definition: ME0SegAlgoMM.h:76
#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:51
int maxRecHitsInCluster
Definition: ME0SegAlgoMM.h:72
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:75
virtual ~ME0SegAlgoMM()
Destructor.
Definition: ME0SegAlgoMM.cc:47
double dEtaChainBoxMax
Definition: ME0SegAlgoMM.h:70
static float running_max
Definition: ME0SegAlgoMM.h:78
double dYclusBoxMax
Definition: ME0SegAlgoMM.h:67
const std::string myName
Definition: ME0SegAlgoMM.h:59