CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes
TrackCountingComputer Class Reference

#include <TrackCountingComputer.h>

Inheritance diagram for TrackCountingComputer:
JetTagComputer NegativeTrackCountingComputer

Public Member Functions

float discriminator (const TagInfoHelper &ti) const
 
 TrackCountingComputer (const edm::ParameterSet &parameters)
 
- Public Member Functions inherited from JetTagComputer
const std::vector< std::string > & getInputLabels () const
 
virtual void initialize (const JetTagComputerRecord &)
 
 JetTagComputer ()
 
 JetTagComputer (const edm::ParameterSet &configuration)
 
float operator() (const reco::BaseTagInfo &info) const
 
float operator() (const TagInfoHelper &helper) const
 
void setupDone ()
 
virtual ~JetTagComputer ()
 

Protected Member Functions

std::multiset< float > orderedSignificances (const reco::TrackIPTagInfo &tkip) const
 
- Protected Member Functions inherited from JetTagComputer
virtual float discriminator (const reco::BaseTagInfo &) const
 
void uses (unsigned int id, const std::string &label)
 
void uses (const std::string &label)
 

Protected Attributes

double m_cutMaxDecayLen
 
double m_cutMaxDistToAxis
 
double m_deltaR
 
int m_ipType
 
double m_minIP
 
int m_nthTrack
 
reco::TrackBase::TrackQuality m_trackQuality
 
bool m_useAllQualities
 
bool m_useSignedIPSig
 
bool useVariableJTA_
 
reco::btag::variableJTAParameters varJTApars
 

Detailed Description

Definition at line 12 of file TrackCountingComputer.h.

Constructor & Destructor Documentation

TrackCountingComputer::TrackCountingComputer ( const edm::ParameterSet parameters)
inline

Definition at line 16 of file TrackCountingComputer.h.

References edm::ParameterSet::existsAs(), edm::false, edm::ParameterSet::getParameter(), m_cutMaxDecayLen, m_cutMaxDistToAxis, m_deltaR, m_ipType, m_minIP, m_nthTrack, m_trackQuality, m_useAllQualities, m_useSignedIPSig, reco::TrackBase::qualityByName(), AlCaHLTBitMon_QueryRunRegistry::string, JetTagComputer::uses(), useVariableJTA_, and varJTApars.

17  {
18  m_minIP = parameters.existsAs<double>("minimumImpactParameter") ? parameters.getParameter<double>("minimumImpactParameter") : -1;
19  m_useSignedIPSig = parameters.existsAs<bool>("useSignedImpactParameterSig") ? parameters.getParameter<bool>("useSignedImpactParameterSig") : true;
20  m_nthTrack = parameters.getParameter<int>("nthTrack");
21  m_ipType = parameters.getParameter<int>("impactParameterType");
22  m_deltaR = parameters.getParameter<double>("deltaR");
23  m_cutMaxDecayLen = parameters.getParameter<double>("maximumDecayLength"); //used
24  m_cutMaxDistToAxis = parameters.getParameter<double>("maximumDistanceToJetAxis"); //used
25  //
26  // access track quality class; "any" takes everything
27  //
28  std::string trackQualityType = parameters.getParameter<std::string>("trackQualityClass"); //used
30  m_useAllQualities = false;
31  if (trackQualityType == "any" ||
32  trackQualityType == "Any" ||
33  trackQualityType == "ANY" ) m_useAllQualities = true;
34 
35  uses("ipTagInfos");
36 
37  useVariableJTA_ = parameters.existsAs<bool>("useVariableJTA") ? parameters.getParameter<bool>("useVariableJTA") : false ;
38  if (useVariableJTA_){
39  varJTApars = {
40  parameters.getParameter<double>("a_dR"),
41  parameters.getParameter<double>("b_dR"),
42  parameters.getParameter<double>("a_pT"),
43  parameters.getParameter<double>("b_pT"),
44  parameters.getParameter<double>("min_pT"),
45  parameters.getParameter<double>("max_pT"),
46  parameters.getParameter<double>("min_pT_dRcut"),
47  parameters.getParameter<double>("max_pT_dRcut"),
48  parameters.getParameter<double>("max_pT_trackPTcut") };
49  }
50  }
T getParameter(std::string const &) const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:184
reco::btag::variableJTAParameters varJTApars
void uses(unsigned int id, const std::string &label)
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:102
volatile std::atomic< bool > shutdown_flag false
reco::TrackBase::TrackQuality m_trackQuality

Member Function Documentation

float TrackCountingComputer::discriminator ( const TagInfoHelper ti) const
inlinevirtual

Reimplemented from JetTagComputer.

Definition at line 53 of file TrackCountingComputer.h.

References JetTagComputer::TagInfoHelper::get(), i, m_nthTrack, and orderedSignificances().

54  {
55  const reco::TrackIPTagInfo & tkip = ti.get<reco::TrackIPTagInfo>();
56  std::multiset<float> significances = orderedSignificances(tkip);
57  std::multiset<float>::reverse_iterator nth=significances.rbegin();
58  for(int i=0;i<m_nthTrack-1 && nth!=significances.rend();i++) nth++;
59  if(nth!=significances.rend()) return *nth; else return -100.;
60  }
int i
Definition: DBlmapReader.cc:9
std::multiset< float > orderedSignificances(const reco::TrackIPTagInfo &tkip) const
std::multiset<float> TrackCountingComputer::orderedSignificances ( const reco::TrackIPTagInfo tkip) const
inlineprotected

Definition at line 64 of file TrackCountingComputer.h.

References i, reco::IPTagInfo< Container, Base >::impactParameterData(), PyquenDefaultSettings_cff::impactParameters, edm::Ref< C, T, F >::isNull(), m_minIP, m_useAllQualities, m_useSignedIPSig, p4, reco::IPTagInfo< Container, Base >::primaryVertex(), reco::IPTagInfo< Container, Base >::selectedTracks(), testEve_cfg::tracks, useVariableJTA_, reco::IPTagInfo< Container, Base >::variableJTA(), and varJTApars.

Referenced by NegativeTrackCountingComputer::discriminator(), and discriminator().

64  {
65 
66  const std::vector<reco::btag::TrackIPData> & impactParameters((tkip.impactParameterData()));
68  std::multiset<float> significances;
69  int i=0;
70  if(tkip.primaryVertex().isNull()) { return std::multiset<float>();}
71 
72  GlobalPoint pv(tkip.primaryVertex()->position().x(),tkip.primaryVertex()->position().y(),tkip.primaryVertex()->position().z());
73 
74  for(std::vector<reco::btag::TrackIPData>::const_iterator it = impactParameters.begin(); it!=impactParameters.end(); ++it, i++) {
75  if( fabs(impactParameters[i].distanceToJetAxis.value()) < m_cutMaxDistToAxis && // distance to JetAxis
76  (impactParameters[i].closestToJetAxis - pv).mag() < m_cutMaxDecayLen && // max decay len
77  (m_useAllQualities == true || (*tracks[i]).quality(m_trackQuality)) && // use selected track qualities
78  (fabs(((m_ipType==0) ? it->ip3d:it->ip2d).value()) > m_minIP) // minimum impact parameter
79  ) {
80 
81  //calculate the signed or un-signed significance
82  float signed_sig = ((m_ipType == 0) ? it->ip3d : it->ip2d).significance();
83  float unsigned_sig = fabs(signed_sig);
84  float significance = (m_useSignedIPSig) ? signed_sig : unsigned_sig;
85 
86  if (useVariableJTA_) {
87  if (tkip.variableJTA( varJTApars )[i]) significances.insert( significance );
88  }
89  else // no using variable JTA, use the default method
90  if(m_deltaR <=0 || ROOT::Math::VectorUtil::DeltaR((*tkip.jet()).p4().Vect(), (*tracks[i]).momentum()) < m_deltaR)
91  significances.insert( significance );
92  }
93  }
94 
95  return significances;
96  }
int i
Definition: DBlmapReader.cc:9
std::vector< bool > variableJTA(const btag::variableJTAParameters &params) const
Definition: IPTagInfo.h:211
const Container & selectedTracks() const
Definition: IPTagInfo.h:100
reco::btag::variableJTAParameters varJTApars
const edm::Ref< VertexCollection > & primaryVertex() const
Definition: IPTagInfo.h:132
double p4[4]
Definition: TauolaWrapper.h:92
bool isNull() const
Checks for null.
Definition: Ref.h:247
const std::vector< btag::TrackIPData > & impactParameterData() const
Definition: IPTagInfo.h:90
tuple tracks
Definition: testEve_cfg.py:39
reco::TrackBase::TrackQuality m_trackQuality

Member Data Documentation

double TrackCountingComputer::m_cutMaxDecayLen
protected

Definition at line 108 of file TrackCountingComputer.h.

Referenced by TrackCountingComputer().

double TrackCountingComputer::m_cutMaxDistToAxis
protected

Definition at line 109 of file TrackCountingComputer.h.

Referenced by TrackCountingComputer().

double TrackCountingComputer::m_deltaR
protected

Definition at line 107 of file TrackCountingComputer.h.

Referenced by TrackCountingComputer().

int TrackCountingComputer::m_ipType
protected

Definition at line 106 of file TrackCountingComputer.h.

Referenced by TrackCountingComputer().

double TrackCountingComputer::m_minIP
protected

Definition at line 102 of file TrackCountingComputer.h.

Referenced by orderedSignificances(), and TrackCountingComputer().

int TrackCountingComputer::m_nthTrack
protected
reco::TrackBase::TrackQuality TrackCountingComputer::m_trackQuality
protected

Definition at line 110 of file TrackCountingComputer.h.

Referenced by TrackCountingComputer().

bool TrackCountingComputer::m_useAllQualities
protected

Definition at line 111 of file TrackCountingComputer.h.

Referenced by orderedSignificances(), and TrackCountingComputer().

bool TrackCountingComputer::m_useSignedIPSig
protected

Definition at line 103 of file TrackCountingComputer.h.

Referenced by orderedSignificances(), and TrackCountingComputer().

bool TrackCountingComputer::useVariableJTA_
protected

Definition at line 99 of file TrackCountingComputer.h.

Referenced by orderedSignificances(), and TrackCountingComputer().

reco::btag::variableJTAParameters TrackCountingComputer::varJTApars
protected

Definition at line 100 of file TrackCountingComputer.h.

Referenced by orderedSignificances(), and TrackCountingComputer().