CMS 3D CMS Logo

reco::PFBlockElementTrack Class Reference

Track Element. More...

#include <DataFormats/ParticleFlowReco/interface/PFBlockElementTrack.h>

Inheritance diagram for reco::PFBlockElementTrack:

reco::PFBlockElement

List of all members.

Public Member Functions

PFBlockElementclone () const
 necessary to have the edm::OwnVector<PFBlockElement> working
ConversionRef convRef () const
 
Returns:
ref to original recoConversion

void Dump (std::ostream &out=std::cout, const char *tab=" ") const
 print the object inside the element
bool isSecondary () const
 check if the track is secondary
reco::MuonRef muonRef () const
 
Returns:
reference to the corresponding Muon

NuclearInteractionRef nuclearRef () const
 
Returns:
the nuclear interaction associated

 PFBlockElementTrack (const PFRecTrackRef &ref)
 PFBlockElementTrack ()
const math::XYZPointFpositionAtECALEntrance () const
 
Returns:
position at ECAL entrance

void setConversionRef (const ConversionRef &convRef, TrackType trType)
 the ref to gamma conversion
void setMuonRef (const MuonRef &muref)
 reference to the Muon
void setNuclearRef (const NuclearInteractionRef &niref, TrackType trType)
 the ref to the nuclear interaction
void setPositionAtECALEntrance (float x, float y, float z)
 set position at ECAL entrance
virtual void setTrackType (TrackType trType, bool value)
 the trackType
void setV0Ref (const VertexCompositeCandidateRef &V0Ref, TrackType trType)
 the ref to V0
reco::TrackRef trackRef () const
 
Returns:
reference to the corresponding Track

PFRecTrackRef trackRefPF () const
 
Returns:
reference to the corresponding PFRecTrack please do not use this function after the block production stage!

virtual bool trackType (TrackType trType) const
 
Returns:
tracktype

VertexCompositeCandidateRef V0Ref () const
 
Returns:
ref to original V0


Private Attributes

ConversionRef convRef_
 reference to reco conversion
reco::MuonRef muonRef_
 reference to the corresponding muon
NuclearInteractionRef nuclInterRef_
 reference to the corresponding pf nuclear interaction
math::XYZPointF positionAtECALEntrance_
 position at ECAL entrance
reco::TrackRef trackRef_
 reference to the corresponding track
PFRecTrackRef trackRefPF_
 reference to the corresponding track (transient)
unsigned int trackType_
VertexCompositeCandidateRef v0Ref_
 reference to V0


Detailed Description

Track Element.

this class contains a reference to a PFRecTrack

Definition at line 17 of file PFBlockElementTrack.h.


Constructor & Destructor Documentation

reco::PFBlockElementTrack::PFBlockElementTrack (  )  [inline]

Definition at line 20 of file PFBlockElementTrack.h.

Referenced by clone().

00020 {} 

PFBlockElementTrack::PFBlockElementTrack ( const PFRecTrackRef ref  ) 

Definition at line 13 of file PFBlockElementTrack.cc.

References reco::PFBlockElement::DEFAULT, reco::PFTrajectoryPoint::ECALEntrance, edm::Ref< C, T, F >::isNull(), reco::PFTrajectoryPoint::isValid(), reco::PFTrajectoryPoint::position(), positionAtECALEntrance_, and setTrackType().

00013                                                                  : 
00014   PFBlockElement( TRACK ),
00015   trackRefPF_( ref ), 
00016   trackRef_( ref->trackRef() ),
00017   trackType_(0) {
00018   
00019 
00020   if( ref.isNull() ) 
00021     throw cms::Exception("NullRef")<<" PFBlockElementTrack constructed from a null reference to PFRecTrack.";
00022   
00023   const reco::PFTrajectoryPoint& atECAL 
00024     = ref->extrapolatedPoint( reco::PFTrajectoryPoint::ECALEntrance );
00025 
00026   if( atECAL.isValid() ) 
00027     positionAtECALEntrance_.SetCoordinates( atECAL.position().x(),
00028                                             atECAL.position().y(),
00029                                             atECAL.position().z() );
00030   // if the position at ecal entrance is invalid, 
00031   // positionAtECALEntrance_ is initialized by default to 0,0,0
00032 
00033   setTrackType( DEFAULT, true );      
00034 } 


Member Function Documentation

PFBlockElement* reco::PFBlockElementTrack::clone (  )  const [inline, virtual]

necessary to have the edm::OwnVector<PFBlockElement> working

Implements reco::PFBlockElement.

Definition at line 24 of file PFBlockElementTrack.h.

References PFBlockElementTrack().

00024 { return new PFBlockElementTrack(*this); }

ConversionRef reco::PFBlockElementTrack::convRef (  )  const [inline, virtual]

Returns:
ref to original recoConversion

Reimplemented from reco::PFBlockElement.

Definition at line 81 of file PFBlockElementTrack.h.

References convRef_.

00081 {return convRef_;} 

void reco::PFBlockElementTrack::Dump ( std::ostream &  out = std::cout,
const char *  tab = " " 
) const [virtual]

print the object inside the element

Reimplemented from reco::PFBlockElement.

Referenced by reco::operator<<().

bool reco::PFBlockElementTrack::isSecondary (  )  const [inline, virtual]

check if the track is secondary

Reimplemented from reco::PFBlockElement.

Definition at line 60 of file PFBlockElementTrack.h.

References reco::PFBlockElement::T_FROM_GAMMACONV, reco::PFBlockElement::T_FROM_NUCL, and trackType().

00060                              { 
00061       return trackType(T_FROM_NUCL) || trackType(T_FROM_GAMMACONV); 
00062     }

reco::MuonRef reco::PFBlockElementTrack::muonRef (  )  const [inline, virtual]

Returns:
reference to the corresponding Muon

Reimplemented from reco::PFBlockElement.

Definition at line 73 of file PFBlockElementTrack.h.

References muonRef_.

Referenced by PFAlgo::reconstructTrack().

00073 { return muonRef_; }

NuclearInteractionRef reco::PFBlockElementTrack::nuclearRef (  )  const [inline, virtual]

Returns:
the nuclear interaction associated

Reimplemented from reco::PFBlockElement.

Definition at line 65 of file PFBlockElementTrack.h.

References nuclInterRef_.

Referenced by PFAlgo::reconstructTrack().

00065 { return nuclInterRef_; }

const math::XYZPointF& reco::PFBlockElementTrack::positionAtECALEntrance (  )  const [inline]

Returns:
position at ECAL entrance

Definition at line 48 of file PFBlockElementTrack.h.

References positionAtECALEntrance_.

Referenced by PFAlgo::reconstructTrack().

00048                                                         {
00049       return positionAtECALEntrance_;
00050     }

void reco::PFBlockElementTrack::setConversionRef ( const ConversionRef convRef,
TrackType  trType 
) [inline, virtual]

the ref to gamma conversion

Reimplemented from reco::PFBlockElement.

Definition at line 84 of file PFBlockElementTrack.h.

References convRef_, and setTrackType().

00084                                                                           { 
00085       convRef_ = convRef; setTrackType(trType,true); 
00086     } 

void reco::PFBlockElementTrack::setMuonRef ( const MuonRef muref  )  [inline, virtual]

reference to the Muon

Reimplemented from reco::PFBlockElement.

Definition at line 76 of file PFBlockElementTrack.h.

References reco::PFBlockElement::MUON, muonRef_, and setTrackType().

00076                                           { 
00077       muonRef_=muref; setTrackType(MUON,true); 
00078     }

void reco::PFBlockElementTrack::setNuclearRef ( const NuclearInteractionRef niref,
TrackType  trType 
) [inline, virtual]

the ref to the nuclear interaction

Reimplemented from reco::PFBlockElement.

Definition at line 68 of file PFBlockElementTrack.h.

References nuclInterRef_, and setTrackType().

00068                                                                              { 
00069       nuclInterRef_ = niref; setTrackType(trType,true); 
00070     } 

void reco::PFBlockElementTrack::setPositionAtECALEntrance ( float  x,
float  y,
float  z 
) [inline]

set position at ECAL entrance

Definition at line 42 of file PFBlockElementTrack.h.

References positionAtECALEntrance_.

00042                                                               {
00043       positionAtECALEntrance_.SetCoordinates(x, y, z);
00044     }

virtual void reco::PFBlockElementTrack::setTrackType ( TrackType  trType,
bool  value 
) [inline, virtual]

the trackType

Reimplemented from reco::PFBlockElement.

Definition at line 35 of file PFBlockElementTrack.h.

References trackType_.

Referenced by PFBlockElementTrack(), setConversionRef(), setMuonRef(), setNuclearRef(), and setV0Ref().

00035                                                             {
00036       if(value)  trackType_ = trackType_ | (1<<trType);
00037       else trackType_ = trackType_ ^ (1<<trType);
00038     }

void reco::PFBlockElementTrack::setV0Ref ( const VertexCompositeCandidateRef V0Ref,
TrackType  trType 
) [inline, virtual]

the ref to V0

Reimplemented from reco::PFBlockElement.

Definition at line 92 of file PFBlockElementTrack.h.

References setTrackType(), and v0Ref_.

00092                                                                               { 
00093       v0Ref_ = V0Ref; setTrackType(trType,true); 
00094     } 

reco::TrackRef reco::PFBlockElementTrack::trackRef (  )  const [inline, virtual]

Returns:
reference to the corresponding Track

Reimplemented from reco::PFBlockElement.

Definition at line 57 of file PFBlockElementTrack.h.

References trackRef_.

Referenced by PFAlgo::reconstructTrack(), PFElectronAlgo::SetCandidates(), and PFConversionAlgo::setCandidates().

00057 { return trackRef_; }

PFRecTrackRef reco::PFBlockElementTrack::trackRefPF (  )  const [inline, virtual]

Returns:
reference to the corresponding PFRecTrack please do not use this function after the block production stage!

Reimplemented from reco::PFBlockElement.

Definition at line 54 of file PFBlockElementTrack.h.

References trackRefPF_.

00054 { return trackRefPF_; }

virtual bool reco::PFBlockElementTrack::trackType ( TrackType  trType  )  const [inline, virtual]

Returns:
tracktype

Reimplemented from reco::PFBlockElement.

Definition at line 30 of file PFBlockElementTrack.h.

References trackType_.

Referenced by isSecondary(), reco::operator<<(), and PFAlgo::reconstructTrack().

00030                                                    { 
00031       return (trackType_>>trType) & 1; 
00032     }

VertexCompositeCandidateRef reco::PFBlockElementTrack::V0Ref (  )  const [inline, virtual]

Returns:
ref to original V0

Reimplemented from reco::PFBlockElement.

Definition at line 89 of file PFBlockElementTrack.h.

References v0Ref_.

00089 {return v0Ref_;} 


Member Data Documentation

ConversionRef reco::PFBlockElementTrack::convRef_ [private]

reference to reco conversion

Definition at line 118 of file PFBlockElementTrack.h.

Referenced by convRef(), and setConversionRef().

reco::MuonRef reco::PFBlockElementTrack::muonRef_ [private]

reference to the corresponding muon

Definition at line 115 of file PFBlockElementTrack.h.

Referenced by muonRef(), and setMuonRef().

NuclearInteractionRef reco::PFBlockElementTrack::nuclInterRef_ [private]

reference to the corresponding pf nuclear interaction

Definition at line 112 of file PFBlockElementTrack.h.

Referenced by nuclearRef(), and setNuclearRef().

math::XYZPointF reco::PFBlockElementTrack::positionAtECALEntrance_ [private]

position at ECAL entrance

Definition at line 109 of file PFBlockElementTrack.h.

Referenced by PFBlockElementTrack(), positionAtECALEntrance(), and setPositionAtECALEntrance().

reco::TrackRef reco::PFBlockElementTrack::trackRef_ [private]

reference to the corresponding track

Definition at line 104 of file PFBlockElementTrack.h.

Referenced by trackRef().

PFRecTrackRef reco::PFBlockElementTrack::trackRefPF_ [private]

reference to the corresponding track (transient)

Definition at line 101 of file PFBlockElementTrack.h.

Referenced by trackRefPF().

unsigned int reco::PFBlockElementTrack::trackType_ [private]

Definition at line 106 of file PFBlockElementTrack.h.

Referenced by setTrackType(), and trackType().

VertexCompositeCandidateRef reco::PFBlockElementTrack::v0Ref_ [private]

reference to V0

Definition at line 121 of file PFBlockElementTrack.h.

Referenced by setV0Ref(), and V0Ref().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:51:18 2009 for CMSSW by  doxygen 1.5.4