CMS 3D CMS Logo

Classes | Public Member Functions | Private Attributes

DAClusterizerInZ Class Reference

#include <DAClusterizerInZ.h>

Inheritance diagram for DAClusterizerInZ:
TrackClusterizerInZ

List of all members.

Classes

struct  track_t
struct  vertex_t

Public Member Functions

double beta0 (const double betamax, std::vector< track_t > &tks, std::vector< vertex_t > &y) const
std::vector< std::vector
< reco::TransientTrack > > 
clusterize (const std::vector< reco::TransientTrack > &tracks) const
 DAClusterizerInZ (const edm::ParameterSet &conf)
void dump (const double beta, const std::vector< vertex_t > &y, const std::vector< track_t > &tks, const int verbosity=0) const
double Eik (const track_t &t, const vertex_t &k) const
std::vector< track_tfill (const std::vector< reco::TransientTrack > &tracks) const
bool merge (std::vector< vertex_t > &, int) const
bool merge (std::vector< vertex_t > &, double &) const
bool purge (std::vector< vertex_t > &, std::vector< track_t > &, double &, const double) const
bool split (double beta, std::vector< track_t > &tks, std::vector< vertex_t > &y, double threshold) const
void splitAll (std::vector< vertex_t > &y) const
double update (double beta, std::vector< track_t > &tks, std::vector< vertex_t > &y) const
double update (double beta, std::vector< track_t > &tks, std::vector< vertex_t > &y, double &) const
std::vector< TransientVertexvertices (const std::vector< reco::TransientTrack > &tracks, const int verbosity=0) const

Private Attributes

float betamax_
float betastop_
double coolingFactor_
double d0CutOff_
double dzCutOff_
int maxIterations_
bool useTc_
bool verbose_
float vertexSize_

Detailed Description

Description: separates event tracks into clusters along the beam line

Definition at line 21 of file DAClusterizerInZ.h.


Constructor & Destructor Documentation

DAClusterizerInZ::DAClusterizerInZ ( const edm::ParameterSet conf)

Definition at line 455 of file DAClusterizerInZ.cc.

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

{
  // some defaults to avoid uninitialized variables
  verbose_= conf.getUntrackedParameter<bool>("verbose", false);
  useTc_=true;
  betamax_=0.1;
  betastop_  =1.0;
  coolingFactor_=0.8;
  maxIterations_=100;
  vertexSize_=0.05;  // 0.5 mm
  dzCutOff_=4.0;   // Adaptive Fitter uses 3.0 but that appears to be a bit tight here sometimes

  // configure

  double Tmin = conf.getParameter<double>("Tmin");
  vertexSize_ = conf.getParameter<double>("vertexSize");
  coolingFactor_ = conf.getParameter<double>("coolingFactor");
  d0CutOff_  =  conf.getParameter<double>("d0CutOff");
  dzCutOff_  =  conf.getParameter<double>("dzCutOff");
  maxIterations_=100;
  if (Tmin==0){
    cout << "DAClusterizerInZ: invalid Tmin" << Tmin << "  reset do default " << 1./betamax_ << endl;
  }else{
    betamax_ = 1./Tmin;
  }

  // for testing, negative cooling factor: revert to old splitting scheme
  if(coolingFactor_<0){
    coolingFactor_=-coolingFactor_; useTc_=false;
  }

}

Member Function Documentation

double DAClusterizerInZ::beta0 ( const double  betamax,
std::vector< track_t > &  tks,
std::vector< vertex_t > &  y 
) const
std::vector< std::vector<reco::TransientTrack> > DAClusterizerInZ::clusterize ( const std::vector< reco::TransientTrack > &  tracks) const [virtual]

Implements TrackClusterizerInZ.

void DAClusterizerInZ::dump ( const double  beta,
const std::vector< vertex_t > &  y,
const std::vector< track_t > &  tks,
const int  verbosity = 0 
) const
double DAClusterizerInZ::Eik ( const track_t t,
const vertex_t k 
) const
std::vector<track_t> DAClusterizerInZ::fill ( const std::vector< reco::TransientTrack > &  tracks) const
bool DAClusterizerInZ::merge ( std::vector< vertex_t > &  ,
int   
) const
bool DAClusterizerInZ::merge ( std::vector< vertex_t > &  ,
double &   
) const
bool DAClusterizerInZ::purge ( std::vector< vertex_t > &  ,
std::vector< track_t > &  ,
double &  ,
const double   
) const
bool DAClusterizerInZ::split ( double  beta,
std::vector< track_t > &  tks,
std::vector< vertex_t > &  y,
double  threshold 
) const
void DAClusterizerInZ::splitAll ( std::vector< vertex_t > &  y) const
double DAClusterizerInZ::update ( double  beta,
std::vector< track_t > &  tks,
std::vector< vertex_t > &  y 
) const
double DAClusterizerInZ::update ( double  beta,
std::vector< track_t > &  tks,
std::vector< vertex_t > &  y,
double &   
) const
std::vector< TransientVertex > DAClusterizerInZ::vertices ( const std::vector< reco::TransientTrack > &  tracks,
const int  verbosity = 0 
) const

Member Data Documentation

float DAClusterizerInZ::betamax_ [private]

Definition at line 107 of file DAClusterizerInZ.h.

float DAClusterizerInZ::betastop_ [private]

Definition at line 108 of file DAClusterizerInZ.h.

Definition at line 106 of file DAClusterizerInZ.h.

double DAClusterizerInZ::d0CutOff_ [private]

Definition at line 110 of file DAClusterizerInZ.h.

double DAClusterizerInZ::dzCutOff_ [private]

Definition at line 109 of file DAClusterizerInZ.h.

Definition at line 105 of file DAClusterizerInZ.h.

bool DAClusterizerInZ::useTc_ [private]

Definition at line 103 of file DAClusterizerInZ.h.

Definition at line 102 of file DAClusterizerInZ.h.

Definition at line 104 of file DAClusterizerInZ.h.