CMS 3D CMS Logo

DAClusterizerInZ.h
Go to the documentation of this file.
1 #ifndef DAClusterizerInZ_h
2 #define DAClusterizerInZ_h
3 
13 #include <vector>
17 
19 public:
20  struct track_t {
21  double z; // z-coordinate at point of closest approach to the beamline
22  double dz2; // square of the error of z(pca)
23  const reco::TransientTrack *tt; // a pointer to the Transient Track
24  double Z; // Z[i] for DA clustering
25  double pi; // track weight
26  };
27 
28  struct vertex_t {
29  double z; // z coordinate
30  double pk; // vertex weight for "constrained" clustering
31  // --- temporary numbers, used during update
32  double ei;
33  double sw;
34  double swz;
35  double se;
36  // ---for Tc
37  double swE;
38  double Tc;
39  };
40 
42 
43  std::vector<std::vector<reco::TransientTrack> > clusterize(
44  const std::vector<reco::TransientTrack> &tracks) const override;
45 
46  std::vector<TransientVertex> vertices(const std::vector<reco::TransientTrack> &tracks, const int verbosity = 0) const;
47 
48  std::vector<track_t> fill(const std::vector<reco::TransientTrack> &tracks) const;
49 
50  bool split(double beta, std::vector<track_t> &tks, std::vector<vertex_t> &y, double threshold) const;
51 
52  double update(double beta, std::vector<track_t> &tks, std::vector<vertex_t> &y) const;
53 
54  double update(double beta, std::vector<track_t> &tks, std::vector<vertex_t> &y, double &) const;
55 
56  void dump(const double beta,
57  const std::vector<vertex_t> &y,
58  const std::vector<track_t> &tks,
59  const int verbosity = 0) const;
60  bool merge(std::vector<vertex_t> &, int) const;
61  bool merge(std::vector<vertex_t> &, double &) const;
62  bool purge(std::vector<vertex_t> &, std::vector<track_t> &, double &, const double) const;
63 
64  void splitAll(std::vector<vertex_t> &y) const;
65 
66  double beta0(const double betamax, std::vector<track_t> &tks, std::vector<vertex_t> &y) const;
67 
68  double Eik(const track_t &t, const vertex_t &k) const;
69 
70 private:
71  bool verbose_;
72  bool useTc_;
73  float vertexSize_;
76  float betamax_;
77  float betastop_;
78  double dzCutOff_;
79  double d0CutOff_;
80 };
81 
82 #endif
DAClusterizerInZ::purge
bool purge(std::vector< vertex_t > &, std::vector< track_t > &, double &, const double) const
Definition: DAClusterizerInZ.cc:227
HIPAlignmentAlgorithm_cfi.verbosity
verbosity
Definition: HIPAlignmentAlgorithm_cfi.py:7
DDAxes::y
DAClusterizerInZ::coolingFactor_
double coolingFactor_
Definition: DAClusterizerInZ.h:75
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
DAClusterizerInZ::useTc_
bool useTc_
Definition: DAClusterizerInZ.h:72
DAClusterizerInZ::betamax_
float betamax_
Definition: DAClusterizerInZ.h:76
DAClusterizerInZ::vertex_t::se
double se
Definition: DAClusterizerInZ.h:35
DAClusterizerInZ::clusterize
std::vector< std::vector< reco::TransientTrack > > clusterize(const std::vector< reco::TransientTrack > &tracks) const override
Definition: DAClusterizerInZ.cc:684
zMuMuMuonUserData.beta
beta
Definition: zMuMuMuonUserData.py:10
DAClusterizerInZ::DAClusterizerInZ
DAClusterizerInZ(const edm::ParameterSet &conf)
Definition: DAClusterizerInZ.cc:414
DAClusterizerInZ::vertex_t::sw
double sw
Definition: DAClusterizerInZ.h:33
DAClusterizerInZ::dump
void dump(const double beta, const std::vector< vertex_t > &y, const std::vector< track_t > &tks, const int verbosity=0) const
Definition: DAClusterizerInZ.cc:446
DAClusterizerInZ::Eik
double Eik(const track_t &t, const vertex_t &k) const
Definition: DAClusterizerInZ.cc:42
DAClusterizerInZ::merge
bool merge(std::vector< vertex_t > &, int) const
Definition: DAClusterizerInZ.cc:171
TransientTrack.h
TrackClusterizerInZ
Definition: TrackClusterizerInZ.h:14
DAClusterizerInZ::betastop_
float betastop_
Definition: DAClusterizerInZ.h:77
DAClusterizerInZ::verbose_
bool verbose_
Definition: DAClusterizerInZ.h:71
DAClusterizerInZ::d0CutOff_
double d0CutOff_
Definition: DAClusterizerInZ.h:79
DAClusterizerInZ::track_t
Definition: DAClusterizerInZ.h:20
DAClusterizerInZ::vertex_t::ei
double ei
Definition: DAClusterizerInZ.h:32
VertexDistanceXY.h
DAClusterizerInZ::track_t::pi
double pi
Definition: DAClusterizerInZ.h:25
DAClusterizerInZ::vertex_t::z
double z
Definition: DAClusterizerInZ.h:29
dqmdumpme.k
k
Definition: dqmdumpme.py:60
OrderedSet.t
t
Definition: OrderedSet.py:90
DAClusterizerInZ::vertex_t
Definition: DAClusterizerInZ.h:28
DAClusterizerInZ::maxIterations_
int maxIterations_
Definition: DAClusterizerInZ.h:74
Error.h
edm::ParameterSet
Definition: ParameterSet.h:36
DAClusterizerInZ::track_t::tt
const reco::TransientTrack * tt
Definition: DAClusterizerInZ.h:23
DAClusterizerInZ
Definition: DAClusterizerInZ.h:18
DAClusterizerInZ::vertex_t::Tc
double Tc
Definition: DAClusterizerInZ.h:38
TransientVertex.h
DAClusterizerInZ::vertex_t::swz
double swz
Definition: DAClusterizerInZ.h:34
DAClusterizerInZ::track_t::z
double z
Definition: DAClusterizerInZ.h:21
DAClusterizerInZ::vertices
std::vector< TransientVertex > vertices(const std::vector< reco::TransientTrack > &tracks, const int verbosity=0) const
Definition: DAClusterizerInZ.cc:540
reco::TransientTrack
Definition: TransientTrack.h:19
DAClusterizerInZ::splitAll
void splitAll(std::vector< vertex_t > &y) const
Definition: DAClusterizerInZ.cc:386
DAClusterizerInZ::vertexSize_
float vertexSize_
Definition: DAClusterizerInZ.h:73
DAClusterizerInZ::update
double update(double beta, std::vector< track_t > &tks, std::vector< vertex_t > &y) const
Definition: DAClusterizerInZ.cc:44
DAClusterizerInZ::split
bool split(double beta, std::vector< track_t > &tks, std::vector< vertex_t > &y, double threshold) const
Definition: DAClusterizerInZ.cc:304
DAClusterizerInZ::track_t::Z
double Z
Definition: DAClusterizerInZ.h:24
ParameterSet.h
DAClusterizerInZ::track_t::dz2
double dz2
Definition: DAClusterizerInZ.h:22
DAClusterizerInZ::dzCutOff_
double dzCutOff_
Definition: DAClusterizerInZ.h:78
remoteMonitoring_LED_IterMethod_cfg.threshold
threshold
Definition: remoteMonitoring_LED_IterMethod_cfg.py:426
TrackClusterizerInZ.h
DAClusterizerInZ::beta0
double beta0(const double betamax, std::vector< track_t > &tks, std::vector< vertex_t > &y) const
Definition: DAClusterizerInZ.cc:267
DAClusterizerInZ::vertex_t::swE
double swE
Definition: DAClusterizerInZ.h:37
DAClusterizerInZ::vertex_t::pk
double pk
Definition: DAClusterizerInZ.h:30
DAClusterizerInZ::fill
std::vector< track_t > fill(const std::vector< reco::TransientTrack > &tracks) const
Definition: DAClusterizerInZ.cc:15