CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
AlgoSettings.h
Go to the documentation of this file.
1 #ifndef __L1Trigger_VertexFinder_AlgoSettings_h__
2 #define __L1Trigger_VertexFinder_AlgoSettings_h__
3 
4 #include <vector>
5 #include <string>
6 
9 
10 namespace l1tVertexFinder {
11 
12  enum class Algorithm {
13  FastHisto,
17  DBSCAN,
18  PVR,
20  HPV,
21  Kmeans
22  };
23 
24  class AlgoSettings {
25  public:
28 
29  //=== Vertex Reconstruction configuration
30  // Vertex Reconstruction algo
31  Algorithm vx_algo() const { return vx_algo_; }
33  unsigned int vx_distanceType() const { return vx_distanceType_; }
34  // Assumed Vertex Distance
35  float vx_distance() const { return vx_distance_; }
36  // Assumed Vertex Resolution
37  float vx_resolution() const { return vx_resolution_; }
38  // Minimum number of tracks to accept vertex
39  unsigned int vx_minTracks() const { return vx_minTracks_; }
40  // Compute the z0 position of the vertex with a mean weighted with track momenta
41  unsigned int vx_weightedmean() const { return vx_weightedmean_; }
43  float vx_chi2cut() const { return vx_chi2cut_; }
45  unsigned int vx_windowSize() const { return vx_windowSize_; }
47  std::vector<double> vx_histogram_parameters() const { return vx_histogram_parameters_; }
48  double vx_histogram_min() const { return vx_histogram_parameters_.at(0); }
49  double vx_histogram_max() const { return vx_histogram_parameters_.at(1); }
50  double vx_histogram_binwidth() const { return vx_histogram_parameters_.at(2); }
52  float vx_width() const { return vx_width_; }
54  bool vx_DoPtComp() const { return vx_DoPtComp_; }
55  bool vx_DoTightChi2() const { return vx_DoTightChi2_; }
57  unsigned int vx_nvtx() const { return vx_nvtx_; }
58  float vx_dbscan_pt() const { return vx_dbscan_pt_; }
59  unsigned int vx_dbscan_mintracks() const { return vx_dbscan_mintracks_; }
60 
61  unsigned int vx_kmeans_iterations() const { return vx_kmeans_iterations_; }
62  unsigned int vx_kmeans_nclusters() const { return vx_kmeans_nclusters_; }
63  float vx_TrackMinPt() const { return vx_TrackMinPt_; }
64  float vx_TrackMaxPt() const { return vx_TrackMaxPt_; }
66  float vx_TrackMaxChi2() const { return vx_TrackMaxChi2_; }
67  unsigned int vx_NStubMin() const { return vx_NStubMin_; }
68  unsigned int vx_NStubPSMin() const { return vx_NStubPSMin_; }
69 
70  //=== Debug printout
71  unsigned int debug() const { return debug_; }
72 
73  //=== Hard-wired constants
74  // EJC Check this. Found stub at r = 109.504 with flat geometry in 81X, so increased tracker radius for now.
75  double trackerOuterRadius() const { return 120.2; } // max. occuring stub radius.
76  // EJC Check this. Found stub at r = 20.664 with flat geometry in 81X, so decreased tracker radius for now.
77  double trackerInnerRadius() const { return 20; } // min. occuring stub radius.
78  double trackerHalfLength() const { return 270.; } // half-length of tracker.
79  double layerIDfromRadiusBin() const {
80  return 6.;
81  } // When counting stubs in layers, actually histogram stubs in distance from beam-line with this bin size.
82 
83  private:
84  static const std::map<std::string, Algorithm> algoNameMap;
85 
86  // Parameter sets for differents types of configuration parameter.
88 
89  // Vertex Reconstruction configuration
91  float vx_distance_;
93  unsigned int vx_distanceType_;
94  unsigned int vx_minTracks_;
95  unsigned int vx_weightedmean_;
96  float vx_chi2cut_;
99  std::vector<double> vx_histogram_parameters_;
100  unsigned int vx_nvtx_;
101  float vx_width_;
102  unsigned int vx_windowSize_;
107  unsigned int vx_NStubMin_;
108  unsigned int vx_NStubPSMin_;
111  unsigned int vx_kmeans_iterations_;
112  unsigned int vx_kmeans_nclusters_;
113 
114  // Debug printout
115  unsigned int debug_;
116  };
117 
118 } // end namespace l1tVertexFinder
119 
120 #endif
std::vector< double > vx_histogram_parameters_
Definition: AlgoSettings.h:99
float vx_TrackMaxChi2() const
Definition: AlgoSettings.h:66
double vx_histogram_max() const
Definition: AlgoSettings.h:49
float vx_TrackMaxPtBehavior() const
Definition: AlgoSettings.h:65
unsigned int vx_distanceType() const
For Agglomerative cluster algorithm, select a definition of distance between clusters.
Definition: AlgoSettings.h:33
double vx_histogram_binwidth() const
Definition: AlgoSettings.h:50
unsigned int vx_windowSize() const
Window size of the sliding window.
Definition: AlgoSettings.h:45
float vx_width() const
FastHisto assumed vertex width.
Definition: AlgoSettings.h:52
std::vector< double > vx_histogram_parameters() const
FastHisto histogram parameters (min, max, width)
Definition: AlgoSettings.h:47
unsigned int vx_nvtx() const
Number of vertices to return for FastHisto.
Definition: AlgoSettings.h:57
unsigned int vx_NStubPSMin() const
Definition: AlgoSettings.h:68
float vx_chi2cut() const
Chi2 cut for the Adaptive Vertex Recostruction Algorithm.
Definition: AlgoSettings.h:43
unsigned int vx_kmeans_nclusters() const
Definition: AlgoSettings.h:62
double trackerOuterRadius() const
Definition: AlgoSettings.h:75
unsigned int vx_kmeans_iterations() const
Definition: AlgoSettings.h:61
double layerIDfromRadiusBin() const
Definition: AlgoSettings.h:79
unsigned int debug() const
Definition: AlgoSettings.h:71
unsigned int vx_dbscan_mintracks() const
Definition: AlgoSettings.h:59
AlgoSettings(const edm::ParameterSet &iConfig)
=== Get configuration parameters
Definition: AlgoSettings.cc:7
Algorithm vx_algo() const
Definition: AlgoSettings.h:31
double trackerHalfLength() const
Definition: AlgoSettings.h:78
double vx_histogram_min() const
Definition: AlgoSettings.h:48
bool vx_DoPtComp() const
FastHisto track selection control.
Definition: AlgoSettings.h:54
unsigned int vx_weightedmean() const
Definition: AlgoSettings.h:41
edm::ParameterSet vertex_
Definition: AlgoSettings.h:87
unsigned int vx_minTracks() const
Definition: AlgoSettings.h:39
double trackerInnerRadius() const
Definition: AlgoSettings.h:77
static const std::map< std::string, Algorithm > algoNameMap
Definition: AlgoSettings.h:84
unsigned int vx_NStubMin() const
Definition: AlgoSettings.h:67