CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX > Class Template Reference

#include <TemplatedSecondaryVertexTagInfo.h>

Inheritance diagram for reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >:
reco::BaseTagInfo

Classes

struct  IndexedVertexTrackSelector
 
struct  TrackFinder
 
struct  VertexData
 
struct  VertexTrackSelector
 

Public Types

typedef reco::btag::IndexedTrackData IndexedTrackData
 
typedef IPTI::input_container input_container
 
typedef reco::btag::TrackData TrackData
 

Public Member Functions

TemplatedSecondaryVertexTagInfoclone (void) const override
 clone More...
 
unsigned int findTrack (const typename input_container::value_type &track) const
 
const GlobalVectorflightDirection (unsigned int index) const
 
Measurement1D flightDistance (unsigned int index, int dim=0) const
 
edm::RefToBase< Jetjet (void) const override
 returns a polymorphic reference to the tagged jet More...
 
unsigned int nSelectedTracks () const
 
unsigned int nVertexCandidates () const
 
unsigned int nVertexTracks () const
 
unsigned int nVertexTracks (unsigned int index) const
 
unsigned int nVertices () const
 
const VTX & secondaryVertex (unsigned int index) const
 
input_container selectedTracks () const
 
TaggingVariableList taggingVariables () const override
 returns a description of the extended informations in a TaggingVariableList More...
 
 TemplatedSecondaryVertexTagInfo ()
 
 TemplatedSecondaryVertexTagInfo (const std::vector< IndexedTrackData > &trackData, const std::vector< VertexData > &svData, unsigned int vertexCandidates, const edm::Ref< std::vector< IPTI > > &)
 
input_container::value_type track (unsigned int index) const
 
const TrackDatatrackData (unsigned int index) const
 
const TrackDatatrackData (const typename input_container::value_type &track) const
 
const reco::btag::TrackIPDatatrackIPData (unsigned int index) const
 
const reco::btag::TrackIPDatatrackIPData (const typename input_container::value_type &track) const
 
const edm::Ref< std::vector< IPTI > > & trackIPTagInfoRef () const
 
float trackWeight (unsigned int svIndex, unsigned int trackindex) const
 
float trackWeight (unsigned int svIndex, const typename input_container::value_type &track) const
 
input_container vertexTracks () const
 
input_container vertexTracks (unsigned int index) const
 
 ~TemplatedSecondaryVertexTagInfo () override
 
- Public Member Functions inherited from reco::BaseTagInfo
 BaseTagInfo (void)
 
virtual bool hasTracks (void) const
 check if the algorithm is using the tracks or not More...
 
virtual TrackRefVector tracks (void) const
 returns a list of tracks associated to the jet More...
 
virtual ~BaseTagInfo (void)
 

Static Public Member Functions

static short Class_Version ()
 

Private Attributes

std::vector< VertexDatam_svData
 
std::vector< IndexedTrackDatam_trackData
 
edm::Ref< std::vector< IPTI > > m_trackIPTagInfoRef
 
unsigned int m_vertexCandidates
 

Detailed Description

template<class IPTI, class VTX>
class reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >

Definition at line 53 of file TemplatedSecondaryVertexTagInfo.h.

Member Typedef Documentation

template<class IPTI, class VTX>
typedef reco::btag::IndexedTrackData reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::IndexedTrackData

Definition at line 56 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI, class VTX>
typedef IPTI::input_container reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::input_container

Definition at line 96 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI, class VTX>
typedef reco::btag::TrackData reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::TrackData

Definition at line 55 of file TemplatedSecondaryVertexTagInfo.h.

Constructor & Destructor Documentation

template<class IPTI, class VTX>
reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::TemplatedSecondaryVertexTagInfo ( )
inline

Definition at line 98 of file TemplatedSecondaryVertexTagInfo.h.

98 {}
template<class IPTI, class VTX>
reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::~TemplatedSecondaryVertexTagInfo ( )
inlineoverride

Definition at line 99 of file TemplatedSecondaryVertexTagInfo.h.

99 {}
template<class IPTI , class VTX >
reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::TemplatedSecondaryVertexTagInfo ( const std::vector< IndexedTrackData > &  trackData,
const std::vector< VertexData > &  svData,
unsigned int  vertexCandidates,
const edm::Ref< std::vector< IPTI > > &  trackIPTagInfoRef 
)

Definition at line 172 of file TemplatedSecondaryVertexTagInfo.h.

176  :
178  m_svData(svData),
179  m_vertexCandidates(vertexCandidates),
180  m_trackIPTagInfoRef(trackIPTagInfoRef)
181 {
182 }
const TrackData & trackData(unsigned int index) const

Member Function Documentation

template<class IPTI, class VTX>
static short reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::Class_Version ( )
inlinestatic

Definition at line 161 of file TemplatedSecondaryVertexTagInfo.h.

163 :
164  std::vector<IndexedTrackData> m_trackData;
template<class IPTI, class VTX>
TemplatedSecondaryVertexTagInfo* reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::clone ( void  ) const
inlineoverridevirtual

clone

Reimplemented from reco::BaseTagInfo.

Definition at line 108 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI , class VTX >
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::findTrack ( const typename input_container::value_type &  track) const

Definition at line 248 of file TemplatedSecondaryVertexTagInfo.h.

References edm::errors::InvalidReference, and HiIsolationCommonParameters_cff::track.

249 {
251  std::find_if(m_trackData.begin(), m_trackData.end(),
252  TrackFinder(m_trackIPTagInfoRef->selectedTracks(),
253  track));
254 
255  if (pos == m_trackData.end())
257  << "Track not found in "
258  " TemplatedSecondaryVertexTagInfo<IPTI,VTX>::findTrack." << std::endl;
259 
260  return pos - m_trackData.begin();
261 }
input_container::value_type track(unsigned int index) const
std::pair< unsigned int, TrackData > IndexedTrackData
template<class IPTI, class VTX>
const GlobalVector& reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::flightDirection ( unsigned int  index) const
inline
template<class IPTI, class VTX>
Measurement1D reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::flightDistance ( unsigned int  index,
int  dim = 0 
) const
inline
template<class IPTI, class VTX>
edm::RefToBase<Jet> reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::jet ( void  ) const
inlineoverridevirtual

returns a polymorphic reference to the tagged jet

Reimplemented from reco::BaseTagInfo.

Definition at line 115 of file TemplatedSecondaryVertexTagInfo.h.

Referenced by BoostedDoubleSVProducer::produce().

116  { return m_trackIPTagInfoRef->jet(); }
template<class IPTI, class VTX>
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::nSelectedTracks ( ) const
inline

Definition at line 128 of file TemplatedSecondaryVertexTagInfo.h.

128 { return m_trackData.size(); }
template<class IPTI, class VTX>
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::nVertexCandidates ( ) const
inline
template<class IPTI , class VTX >
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::nVertexTracks ( ) const

Definition at line 184 of file TemplatedSecondaryVertexTagInfo.h.

Referenced by TemplatedSimpleSecondaryVertexComputer< IPTI, VTX >::discriminator().

185 {
186  return std::count_if(m_trackData.begin(), m_trackData.end(),
187  VertexTrackSelector());
188 }
template<class IPTI , class VTX >
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::nVertexTracks ( unsigned int  index) const

Definition at line 190 of file TemplatedSecondaryVertexTagInfo.h.

191 {
192  return std::count_if(m_trackData.begin(), m_trackData.end(),
193  IndexedVertexTrackSelector(index));
194 }
template<class IPTI, class VTX>
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::nVertices ( ) const
inline
template<class IPTI, class VTX>
const VTX& reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::secondaryVertex ( unsigned int  index) const
inline
template<class IPTI , class VTX >
reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::input_container reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::selectedTracks ( ) const

Definition at line 197 of file TemplatedSecondaryVertexTagInfo.h.

198 {
199  input_container trackRefs;
200  const input_container &trackIPTrackRefs =
201  m_trackIPTagInfoRef->selectedTracks();
202 
203  for(typename std::vector<typename reco::TemplatedSecondaryVertexTagInfo<IPTI,VTX>::IndexedTrackData>::const_iterator iter =
204  m_trackData.begin(); iter != m_trackData.end(); iter++)
205 
206  trackRefs.push_back(trackIPTrackRefs[iter->first]);
207 
208  return trackRefs;
209 }
template<class IPTI , class VTX >
TaggingVariableList reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::taggingVariables ( void  ) const
overridevirtual

returns a description of the extended informations in a TaggingVariableList

Reimplemented from reco::BaseTagInfo.

Definition at line 300 of file TemplatedSecondaryVertexTagInfo.h.

References boostedElectronIsolation_cff::deltaR, reco::TaggingVariableList::finalize(), reco::btau::flightDistance1dSig, reco::btau::flightDistance1dVal, reco::btau::flightDistance2dSig, reco::btau::flightDistance2dVal, reco::btau::flightDistance3dSig, reco::btau::flightDistance3dVal, reco::TaggingVariableList::insert(), metsig::jet, reco::btau::jetNSecondaryVertices, reco::btau::vertexJetDeltaR, and reco::btau::vertexNTracks.

301 {
302  TaggingVariableList vars;
303 
304  for(typename std::vector<typename TemplatedSecondaryVertexTagInfo<IPTI,VTX>::VertexData>::const_iterator iter = m_svData.begin();
305  iter != m_svData.end(); iter++) {
306  vars.insert(btau::flightDistance1dVal,
307  iter->dist1d.value(), true);
308  vars.insert(btau::flightDistance1dSig,
309  iter->dist1d.significance(), true);
310  vars.insert(btau::flightDistance2dVal,
311  iter->dist2d.value(), true);
312  vars.insert(btau::flightDistance2dSig,
313  iter->dist2d.significance(), true);
314  vars.insert(btau::flightDistance3dVal,
315  iter->dist3d.value(), true);
316  vars.insert(btau::flightDistance3dSig,
317  iter->dist3d.significance(), true);
318 
319  vars.insert(btau::vertexJetDeltaR,
320  Geom::deltaR(iter->direction, jet()->momentum()), true);
321  }
322 
324  vars.insert(btau::vertexNTracks, nVertexTracks(), true);
325 
326  vars.finalize();
327  return vars;
328 }
edm::RefToBase< Jet > jet(void) const override
returns a polymorphic reference to the tagged jet
vars
Definition: DeepTauId.cc:77
template<class IPTI , class VTX >
TemplatedSecondaryVertexTagInfo< IPTI, VTX >::input_container::value_type reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::track ( unsigned int  index) const

Definition at line 243 of file TemplatedSecondaryVertexTagInfo.h.

244 {
245  return m_trackIPTagInfoRef->selectedTracks()[m_trackData[index].first];
246 }
template<class IPTI , class VTX >
const TemplatedSecondaryVertexTagInfo< IPTI, VTX >::TrackData & reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackData ( unsigned int  index) const

Definition at line 264 of file TemplatedSecondaryVertexTagInfo.h.

265 {
266  return m_trackData[index].second;
267 }
template<class IPTI , class VTX >
const TemplatedSecondaryVertexTagInfo< IPTI, VTX >::TrackData & reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackData ( const typename input_container::value_type &  track) const

Definition at line 270 of file TemplatedSecondaryVertexTagInfo.h.

271 {
272  return m_trackData[findTrack(track)].second;
273 }
unsigned int findTrack(const typename input_container::value_type &track) const
input_container::value_type track(unsigned int index) const
template<class IPTI , class VTX >
const reco::btag::TrackIPData & reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackIPData ( unsigned int  index) const

Definition at line 276 of file TemplatedSecondaryVertexTagInfo.h.

277 {
278  return m_trackIPTagInfoRef->impactParameterData()[
279  m_trackData[index].first];
280 }
template<class IPTI , class VTX >
const reco::btag::TrackIPData & reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackIPData ( const typename input_container::value_type &  track) const

Definition at line 283 of file TemplatedSecondaryVertexTagInfo.h.

284 {
285  return trackIPData(findTrack(track));
286 }
unsigned int findTrack(const typename input_container::value_type &track) const
const reco::btag::TrackIPData & trackIPData(unsigned int index) const
input_container::value_type track(unsigned int index) const
template<class IPTI, class VTX>
const edm::Ref<std::vector<IPTI> >& reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackIPTagInfoRef ( ) const
inline

Definition at line 112 of file TemplatedSecondaryVertexTagInfo.h.

113  { return m_trackIPTagInfoRef; }
template<class IPTI , class VTX >
float reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackWeight ( unsigned int  svIndex,
unsigned int  trackindex 
) const

Definition at line 294 of file TemplatedSecondaryVertexTagInfo.h.

References HiIsolationCommonParameters_cff::track, and trackWeight().

Referenced by GhostTrackComputer::operator()().

296 {
297  return trackWeight(svIndex, track(trackIndex));
298 }
float trackWeight(unsigned int svIndex, unsigned int trackindex) const
input_container::value_type track(unsigned int index) const
template<class IPTI , class VTX >
float reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::trackWeight ( unsigned int  svIndex,
const typename input_container::value_type &  track 
) const

Definition at line 288 of file TemplatedSecondaryVertexTagInfo.h.

References reco::btag::weight().

290 {
291  return reco::btag::weight(track,m_svData[svIndex].vertex);
292 }
float weight(const reco::TrackRef &t, const reco::Vertex &v)
input_container::value_type track(unsigned int index) const
template<class IPTI , class VTX >
TemplatedSecondaryVertexTagInfo< IPTI, VTX >::input_container reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::vertexTracks ( ) const

Definition at line 212 of file TemplatedSecondaryVertexTagInfo.h.

Referenced by GhostTrackComputer::operator()().

213 {
214  input_container trackRefs;
215  const input_container &trackIPTrackRefs =
216  m_trackIPTagInfoRef->selectedTracks();
217 
218  for(typename std::vector<typename reco::TemplatedSecondaryVertexTagInfo<IPTI,VTX>::IndexedTrackData>::const_iterator iter =
219  m_trackData.begin(); iter != m_trackData.end(); iter++)
220 
221  if (iter->second.associatedToVertex())
222  trackRefs.push_back(trackIPTrackRefs[iter->first]);
223 
224  return trackRefs;
225 }
template<class IPTI , class VTX >
TemplatedSecondaryVertexTagInfo< IPTI, VTX >::input_container reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::vertexTracks ( unsigned int  index) const

Definition at line 228 of file TemplatedSecondaryVertexTagInfo.h.

229 {
230  input_container trackRefs;
231  const input_container &trackIPTrackRefs =
232  m_trackIPTagInfoRef->selectedTracks();
233 
234  for(typename std::vector<typename reco::TemplatedSecondaryVertexTagInfo<IPTI,VTX>::IndexedTrackData>::const_iterator iter =
235  m_trackData.begin(); iter != m_trackData.end(); iter++)
236 
237  if (iter->second.associatedToVertex(index))
238  trackRefs.push_back(trackIPTrackRefs[iter->first]);
239 
240  return trackRefs;
241 }

Member Data Documentation

template<class IPTI, class VTX>
std::vector<VertexData> reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::m_svData
private

Definition at line 165 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI, class VTX>
std::vector<IndexedTrackData> reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::m_trackData
private

Definition at line 164 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI, class VTX>
edm::Ref<std::vector<IPTI> > reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::m_trackIPTagInfoRef
private

Definition at line 168 of file TemplatedSecondaryVertexTagInfo.h.

template<class IPTI, class VTX>
unsigned int reco::TemplatedSecondaryVertexTagInfo< IPTI, VTX >::m_vertexCandidates
private

Definition at line 166 of file TemplatedSecondaryVertexTagInfo.h.