CMS 3D CMS Logo

Classes | Public Types | Public Member Functions | Private Attributes

reco::SecondaryVertexTagInfo Class Reference

#include <SecondaryVertexTagInfo.h>

Inheritance diagram for reco::SecondaryVertexTagInfo:
reco::BaseTagInfo

List of all members.

Classes

struct  TrackData
struct  VertexData

Public Types

typedef std::pair< unsigned
int, TrackData
IndexedTrackData

Public Member Functions

virtual SecondaryVertexTagInfoclone (void) const
 clone
unsigned int findTrack (const TrackRef &track) const
const GlobalVectorflightDirection (unsigned int index) const
Measurement1D flightDistance (unsigned int index, bool in2d=false) const
virtual edm::RefToBase< Jetjet (void) const
 returns a polymorphic reference to the tagged jet
const JetTracksAssociationRefjtaRef (void) const
unsigned int nSelectedTracks () const
unsigned int nVertexCandidates () const
unsigned int nVertexTracks () const
unsigned int nVertexTracks (unsigned int index) const
unsigned int nVertices () const
const VertexsecondaryVertex (unsigned int index) const
 SecondaryVertexTagInfo ()
 SecondaryVertexTagInfo (const std::vector< IndexedTrackData > &trackData, const std::vector< VertexData > &svData, unsigned int vertexCandidates, const TrackIPTagInfoRef &trackIPTagInfoRef)
TrackRefVector selectedTracks () const
virtual TaggingVariableList taggingVariables () const
 returns a description of the extended informations in a TaggingVariableList
TrackRef track (unsigned int index) const
const TrackDatatrackData (unsigned int index) const
const TrackDatatrackData (const TrackRef &track) const
const TrackIPTagInfo::TrackIPDatatrackIPData (const TrackRef &track) const
const TrackIPTagInfo::TrackIPDatatrackIPData (unsigned int index) const
const TrackIPTagInfoRef & trackIPTagInfoRef () const
virtual TrackRefVector tracks (void) const
 returns a list of tracks associated to the jet
float trackWeight (unsigned int svIndex, unsigned int trackindex) const
float trackWeight (unsigned int svIndex, const TrackRef &track) const
TrackRefVector vertexTracks () const
TrackRefVector vertexTracks (unsigned int index) const
virtual ~SecondaryVertexTagInfo ()

Private Attributes

std::vector< VertexDatam_svData
std::vector< IndexedTrackDatam_trackData
TrackIPTagInfoRef m_trackIPTagInfoRef
unsigned int m_vertexCandidates

Detailed Description

Definition at line 19 of file SecondaryVertexTagInfo.h.


Member Typedef Documentation

Definition at line 44 of file SecondaryVertexTagInfo.h.


Constructor & Destructor Documentation

reco::SecondaryVertexTagInfo::SecondaryVertexTagInfo ( ) [inline]

Definition at line 46 of file SecondaryVertexTagInfo.h.

Referenced by clone().

{}
virtual reco::SecondaryVertexTagInfo::~SecondaryVertexTagInfo ( ) [inline, virtual]

Definition at line 47 of file SecondaryVertexTagInfo.h.

{}
SecondaryVertexTagInfo::SecondaryVertexTagInfo ( const std::vector< IndexedTrackData > &  trackData,
const std::vector< VertexData > &  svData,
unsigned int  vertexCandidates,
const TrackIPTagInfoRef &  trackIPTagInfoRef 
)

Definition at line 42 of file SecondaryVertexTagInfo.cc.


Member Function Documentation

virtual SecondaryVertexTagInfo* reco::SecondaryVertexTagInfo::clone ( void  ) const [inline, virtual]

clone

Reimplemented from reco::BaseTagInfo.

Definition at line 56 of file SecondaryVertexTagInfo.h.

References SecondaryVertexTagInfo().

                                                           {
            return new SecondaryVertexTagInfo(*this);
        }
unsigned int SecondaryVertexTagInfo::findTrack ( const TrackRef track) const

Definition at line 115 of file SecondaryVertexTagInfo.cc.

References edm::errors::InvalidReference, m_trackData, m_trackIPTagInfoRef, pos, and track().

Referenced by trackData(), and trackIPData().

{
        std::vector<IndexedTrackData>::const_iterator pos =
                std::find_if(m_trackData.begin(), m_trackData.end(),
                             TrackFinder(m_trackIPTagInfoRef->selectedTracks(),
                                         track));

        if (pos == m_trackData.end())
                throw edm::Exception(edm::errors::InvalidReference)
                        << "Track not found in "
                           "SecondaryVertexTagInfo::findTrack." << std::endl;

        return pos - m_trackData.begin();
}
const GlobalVector& reco::SecondaryVertexTagInfo::flightDirection ( unsigned int  index) const [inline]
Measurement1D reco::SecondaryVertexTagInfo::flightDistance ( unsigned int  index,
bool  in2d = false 
) const [inline]
virtual edm::RefToBase<Jet> reco::SecondaryVertexTagInfo::jet ( void  ) const [inline, virtual]

returns a polymorphic reference to the tagged jet

Reimplemented from reco::BaseTagInfo.

Definition at line 63 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

Referenced by taggingVariables().

        { return m_trackIPTagInfoRef->jet(); }
const JetTracksAssociationRef& reco::SecondaryVertexTagInfo::jtaRef ( void  ) const [inline]

Definition at line 69 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

        { return m_trackIPTagInfoRef->jtaRef(); }
unsigned int reco::SecondaryVertexTagInfo::nSelectedTracks ( ) const [inline]

Definition at line 75 of file SecondaryVertexTagInfo.h.

References m_trackData.

{ return m_trackData.size(); }
unsigned int reco::SecondaryVertexTagInfo::nVertexCandidates ( ) const [inline]

Definition at line 79 of file SecondaryVertexTagInfo.h.

References m_vertexCandidates.

{ return m_vertexCandidates; }
unsigned int SecondaryVertexTagInfo::nVertexTracks ( ) const

Definition at line 54 of file SecondaryVertexTagInfo.cc.

References m_trackData.

Referenced by SimpleSecondaryVertexComputer::discriminator(), CombinedSVComputer::operator()(), and taggingVariables().

{
        return std::count_if(m_trackData.begin(), m_trackData.end(),
                             VertexTrackSelector());
}
unsigned int SecondaryVertexTagInfo::nVertexTracks ( unsigned int  index) const

Definition at line 60 of file SecondaryVertexTagInfo.cc.

References m_trackData.

{
        return std::count_if(m_trackData.begin(), m_trackData.end(),
                             IndexedVertexTrackSelector(index));
}
unsigned int reco::SecondaryVertexTagInfo::nVertices ( ) const [inline]
const Vertex& reco::SecondaryVertexTagInfo::secondaryVertex ( unsigned int  index) const [inline]
TrackRefVector SecondaryVertexTagInfo::selectedTracks ( ) const

Definition at line 66 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

{
        TrackRefVector trackRefs;
        const TrackRefVector &trackIPTrackRefs =
                                m_trackIPTagInfoRef->selectedTracks();

        for(std::vector<IndexedTrackData>::const_iterator iter =
                m_trackData.begin(); iter != m_trackData.end(); iter++)

                trackRefs.push_back(trackIPTrackRefs[iter->first]);

        return trackRefs;
}
TaggingVariableList SecondaryVertexTagInfo::taggingVariables ( void  ) const [virtual]

returns a description of the extended informations in a TaggingVariableList

Reimplemented from reco::BaseTagInfo.

Definition at line 167 of file SecondaryVertexTagInfo.cc.

References Geom::deltaR(), reco::TaggingVariableList::finalize(), reco::btau::flightDistance2dSig, reco::btau::flightDistance2dVal, reco::btau::flightDistance3dSig, reco::btau::flightDistance3dVal, reco::TaggingVariableList::insert(), jet(), reco::btau::jetNSecondaryVertices, m_svData, m_vertexCandidates, nVertexTracks(), reco::btau::vertexJetDeltaR, and reco::btau::vertexNTracks.

{
        TaggingVariableList vars;

        for(std::vector<VertexData>::const_iterator iter = m_svData.begin();
            iter != m_svData.end(); iter++) {
                vars.insert(btau::flightDistance2dVal,
                                        iter->dist2d.value(), true);
                vars.insert(btau::flightDistance2dSig,
                                        iter->dist2d.significance(), true);
                vars.insert(btau::flightDistance3dVal,
                                        iter->dist3d.value(), true);
                vars.insert(btau::flightDistance3dSig,
                                        iter->dist3d.significance(), true);

                vars.insert(btau::vertexJetDeltaR,
                        Geom::deltaR(iter->direction, jet()->momentum()), true);
        }

        vars.insert(btau::jetNSecondaryVertices, m_vertexCandidates, true);
        vars.insert(btau::vertexNTracks, nVertexTracks(), true);

        vars.finalize();
        return vars;
}
TrackRef SecondaryVertexTagInfo::track ( unsigned int  index) const

Definition at line 110 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, m_trackData, and m_trackIPTagInfoRef.

Referenced by findTrack(), and trackWeight().

{
        return m_trackIPTagInfoRef->selectedTracks()[m_trackData[index].first];
}
const SecondaryVertexTagInfo::TrackData & SecondaryVertexTagInfo::trackData ( unsigned int  index) const

Definition at line 131 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, and m_trackData.

{
        return m_trackData[index].second;
}
const SecondaryVertexTagInfo::TrackData & SecondaryVertexTagInfo::trackData ( const TrackRef track) const

Definition at line 137 of file SecondaryVertexTagInfo.cc.

References findTrack(), and m_trackData.

{
        return m_trackData[findTrack(track)].second;
}
const TrackIPTagInfo::TrackIPData & SecondaryVertexTagInfo::trackIPData ( const TrackRef track) const

Definition at line 150 of file SecondaryVertexTagInfo.cc.

References findTrack(), and trackIPData().

{
        return trackIPData(findTrack(track));
}
const TrackIPTagInfo::TrackIPData & SecondaryVertexTagInfo::trackIPData ( unsigned int  index) const

Definition at line 143 of file SecondaryVertexTagInfo.cc.

References getHLTprescales::index, m_trackData, and m_trackIPTagInfoRef.

Referenced by trackIPData().

{
        return m_trackIPTagInfoRef->impactParameterData()[
                                                m_trackData[index].first];
}
const TrackIPTagInfoRef& reco::SecondaryVertexTagInfo::trackIPTagInfoRef ( ) const [inline]

Definition at line 60 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

        { return m_trackIPTagInfoRef; }
virtual TrackRefVector reco::SecondaryVertexTagInfo::tracks ( void  ) const [inline, virtual]

returns a list of tracks associated to the jet

Reimplemented from reco::BaseTagInfo.

Definition at line 66 of file SecondaryVertexTagInfo.h.

References m_trackIPTagInfoRef.

        { return m_trackIPTagInfoRef->tracks(); }
float SecondaryVertexTagInfo::trackWeight ( unsigned int  svIndex,
unsigned int  trackindex 
) const

Definition at line 161 of file SecondaryVertexTagInfo.cc.

References track().

Referenced by CombinedSVComputer::operator()(), and GhostTrackComputer::operator()().

{
        return trackWeight(svIndex, track(trackIndex));
}
float SecondaryVertexTagInfo::trackWeight ( unsigned int  svIndex,
const TrackRef track 
) const

Definition at line 155 of file SecondaryVertexTagInfo.cc.

References m_svData.

{
        return m_svData[svIndex].vertex.trackWeight(track);
}
TrackRefVector SecondaryVertexTagInfo::vertexTracks ( unsigned int  index) const

Definition at line 95 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

{
        TrackRefVector trackRefs;
        const TrackRefVector &trackIPTrackRefs =
                                m_trackIPTagInfoRef->selectedTracks();

        for(std::vector<IndexedTrackData>::const_iterator iter =
                m_trackData.begin(); iter != m_trackData.end(); iter++)

                if (iter->second.associatedToVertex(index))
                        trackRefs.push_back(trackIPTrackRefs[iter->first]);

        return trackRefs;
}  
TrackRefVector SecondaryVertexTagInfo::vertexTracks ( ) const

Definition at line 80 of file SecondaryVertexTagInfo.cc.

References m_trackData, m_trackIPTagInfoRef, and edm::RefVector< C, T, F >::push_back().

Referenced by CombinedSVComputer::operator()(), and GhostTrackComputer::operator()().

{
        TrackRefVector trackRefs;
        const TrackRefVector &trackIPTrackRefs =
                                m_trackIPTagInfoRef->selectedTracks();

        for(std::vector<IndexedTrackData>::const_iterator iter =
                m_trackData.begin(); iter != m_trackData.end(); iter++)

                if (iter->second.associatedToVertex())
                        trackRefs.push_back(trackIPTrackRefs[iter->first]);

        return trackRefs;
}  

Member Data Documentation

Definition at line 108 of file SecondaryVertexTagInfo.h.

Referenced by nVertexCandidates(), and taggingVariables().