CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
GapClusterizerInZ Class Reference

#include <GapClusterizerInZ.h>

Inheritance diagram for GapClusterizerInZ:
TrackClusterizerInZ

Public Member Functions

std::vector< std::vector< reco::TransientTrack > > clusterize (const std::vector< reco::TransientTrack > &tracks) const override
 
 GapClusterizerInZ (const edm::ParameterSet &conf)
 
std::vector< TransientVertexvertices (const std::vector< reco::TransientTrack > &tracks) const
 
float zSeparation () const
 
 ~GapClusterizerInZ () override
 
- Public Member Functions inherited from TrackClusterizerInZ
 TrackClusterizerInZ ()
 
 TrackClusterizerInZ (const edm::ParameterSet &conf)
 
virtual ~TrackClusterizerInZ ()
 

Private Attributes

bool verbose_
 
float zSep
 

Detailed Description

Description: separates event tracks into clusters along the beam line

Definition at line 14 of file GapClusterizerInZ.h.

Constructor & Destructor Documentation

◆ GapClusterizerInZ()

GapClusterizerInZ::GapClusterizerInZ ( const edm::ParameterSet conf)

Definition at line 16 of file GapClusterizerInZ.cc.

16  {
17  // some defaults to avoid uninitialized variables
18  verbose_ = conf.getUntrackedParameter<bool>("verbose", false);
19  zSep = conf.getParameter<double>("zSeparation");
20  if (verbose_) {
21  std::cout << "TrackClusterizerInZ: algorithm=gap, zSeparation=" << zSep << std::endl;
22  }
23 }

References gather_cfg::cout, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

◆ ~GapClusterizerInZ()

GapClusterizerInZ::~GapClusterizerInZ ( )
inlineoverride

Definition at line 25 of file GapClusterizerInZ.h.

25 {};

Member Function Documentation

◆ clusterize()

vector< vector< reco::TransientTrack > > GapClusterizerInZ::clusterize ( const std::vector< reco::TransientTrack > &  tracks) const
overridevirtual

Implements TrackClusterizerInZ.

Definition at line 27 of file GapClusterizerInZ.cc.

27  {
28  vector<reco::TransientTrack> tks = tracks; // copy to be sorted
29 
30  vector<vector<reco::TransientTrack> > clusters;
31  if (tks.empty())
32  return clusters;
33 
34  // sort in increasing order of z
35  stable_sort(tks.begin(), tks.end(), recTrackLessZ);
36 
37  // init first cluster
38  vector<reco::TransientTrack>::const_iterator it = tks.begin();
39  vector<reco::TransientTrack> currentCluster;
40  currentCluster.push_back(*it);
41 
42  it++;
43  for (; it != tks.end(); it++) {
44  double zPrev = currentCluster.back().stateAtBeamLine().trackStateAtPCA().position().z();
45  double zCurr = (*it).stateAtBeamLine().trackStateAtPCA().position().z();
46 
47  if (abs(zCurr - zPrev) < zSeparation()) {
48  // close enough ? cluster together
49  currentCluster.push_back(*it);
50  } else {
51  // store current cluster, start new one
52  clusters.push_back(currentCluster);
53  currentCluster.clear();
54  currentCluster.push_back(*it);
55  }
56  }
57 
58  // store last cluster
59  clusters.push_back(currentCluster);
60 
61  return clusters;
62 }

References funct::abs(), bsc_activity_cfg::clusters, PDWG_EXOHSCP_cff::tracks, and HLT_FULL_cff::zSeparation.

◆ vertices()

std::vector<TransientVertex> GapClusterizerInZ::vertices ( const std::vector< reco::TransientTrack > &  tracks) const

◆ zSeparation()

float GapClusterizerInZ::zSeparation ( ) const

Definition at line 25 of file GapClusterizerInZ.cc.

25 { return zSep; }

Member Data Documentation

◆ verbose_

bool GapClusterizerInZ::verbose_
private

Definition at line 29 of file GapClusterizerInZ.h.

◆ zSep

float GapClusterizerInZ::zSep
private

Definition at line 25 of file GapClusterizerInZ.h.

PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
gather_cfg.cout
cout
Definition: gather_cfg.py:144
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
bsc_activity_cfg.clusters
clusters
Definition: bsc_activity_cfg.py:36
GapClusterizerInZ::zSep
float zSep
Definition: GapClusterizerInZ.h:25
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
GapClusterizerInZ::zSeparation
float zSeparation() const
Definition: GapClusterizerInZ.cc:25
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
GapClusterizerInZ::verbose_
bool verbose_
Definition: GapClusterizerInZ.h:29