CMS 3D CMS Logo

Public Types | Public Member Functions | Protected Attributes | Friends

reco::PFBlockElement Class Reference

Abstract base class for a PFBlock element (track, cluster...) More...

#include <PFBlockElement.h>

Inheritance diagram for reco::PFBlockElement:
reco::PFBlockElementBrem reco::PFBlockElementCluster reco::PFBlockElementGsfTrack reco::PFBlockElementSuperCluster reco::PFBlockElementTrack

List of all members.

Public Types

enum  TrackType {
  DEFAULT = 0, T_FROM_DISP, T_TO_DISP, T_FROM_GAMMACONV,
  MUON, T_FROM_V0
}
enum  Type {
  NONE = 0, TRACK = 1, PS1 = 2, PS2 = 3,
  ECAL = 4, HCAL = 5, GSF = 6, BREM = 7,
  HFEM = 8, HFHAD = 9, SC = 10, HO = 11
}

Public Member Functions

virtual PFBlockElementclone () const =0
 necessary to have the edm::OwnVector<PFBlockElement> working
virtual PFClusterRef clusterRef () const
virtual ConversionRef convRef () const
virtual PFDisplacedTrackerVertexRef displacedVertexRef (TrackType trType) const
virtual void Dump (std::ostream &out=std::cout, const char *tab=" ") const
 print the object inside the element
const PFMultilinksTypegetMultilinks () const
unsigned index () const
virtual bool isLinkedToDisplacedVertex () const
bool isMultilinksValide () const
virtual bool isPrimary () const
virtual bool isSecondary () const
void lock ()
 lock element
bool locked () const
 locked ?
virtual MuonRef muonRef () const
 PFBlockElement (Type type=NONE)
 standard constructor
virtual void setConversionRef (const ConversionRef &convRef, TrackType trType)
virtual void setDisplacedVertexRef (const PFDisplacedTrackerVertexRef &niref, TrackType trType)
void setIndex (unsigned index)
 set index
void setIsValidMultilinks (bool isVal)
void setMultilinks (const PFMultiLinksTC &ml)
void setMultilinksList (const PFMultilinksType &links)
virtual void setMuonRef (const MuonRef &muref)
virtual void setTrackType (TrackType trType, bool value)
 the trackType
virtual void setV0Ref (const VertexCompositeCandidateRef &v0ref, TrackType trType)
virtual reco::TrackRef trackRef () const
virtual PFRecTrackRef trackRefPF () const
virtual bool trackType (TrackType trType) const
Type type () const
void unLock ()
 unlock element
virtual VertexCompositeCandidateRef V0Ref () const
virtual ~PFBlockElement ()
 destructor

Protected Attributes

unsigned index_
 index in block vector
bool locked_
PFMultiLinksTC multilinks_
Type type_

Friends

std::ostream & operator<< (std::ostream &out, const PFBlockElement &element)

Detailed Description

Abstract base class for a PFBlock element (track, cluster...)

this class contains a PFRecTrackRef of a PFClusterRef, depending on the type of the element

Definition at line 28 of file PFBlockElement.h.


Member Enumeration Documentation

Enumerator:
DEFAULT 
T_FROM_DISP 
T_TO_DISP 
T_FROM_GAMMACONV 
MUON 
T_FROM_V0 

Definition at line 48 of file PFBlockElement.h.

possible types for the element do not modify this enum if you don't know what you're doing!!!

Enumerator:
NONE 
TRACK 
PS1 
PS2 
ECAL 
HCAL 
GSF 
BREM 
HFEM 
HFHAD 
SC 
HO 

Definition at line 33 of file PFBlockElement.h.

              { 
      NONE=0,
      TRACK=1, 
      PS1=2, 
      PS2=3, 
      ECAL=4, 
      HCAL=5,
      GSF=6,
      BREM=7,
      HFEM=8,
      HFHAD=9,
      SC=10,
      HO=11
    };

Constructor & Destructor Documentation

reco::PFBlockElement::PFBlockElement ( Type  type = NONE) [inline]

standard constructor

Definition at line 58 of file PFBlockElement.h.

                                   :  
      type_(type), 
      locked_(false),
      index_( static_cast<unsigned>(-1) ) {
    }
virtual reco::PFBlockElement::~PFBlockElement ( ) [inline, virtual]

destructor

Definition at line 66 of file PFBlockElement.h.

{}

Member Function Documentation

virtual PFBlockElement* reco::PFBlockElement::clone ( ) const [pure virtual]
virtual PFClusterRef reco::PFBlockElement::clusterRef ( ) const [inline, virtual]
virtual ConversionRef reco::PFBlockElement::convRef ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 104 of file PFBlockElement.h.

Referenced by PFBlockAlgo::testLinkByVertex().

{ return ConversionRef();}
virtual PFDisplacedTrackerVertexRef reco::PFBlockElement::displacedVertexRef ( TrackType  trType) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 103 of file PFBlockElement.h.

Referenced by PFBlockAlgo::testLinkByVertex().

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

print the object inside the element

Reimplemented in reco::PFBlockElementBrem, reco::PFBlockElementCluster, reco::PFBlockElementGsfTrack, reco::PFBlockElementSuperCluster, and reco::PFBlockElementTrack.

Definition at line 17 of file PFBlockElement.cc.

                                                 {
  if(!out) return;
  out<<pad<<"base element";
}
const PFMultilinksType& reco::PFBlockElement::getMultilinks ( ) const [inline]

Definition at line 132 of file PFBlockElement.h.

References reco::PFMultiLinksTC::linkedClusters, and multilinks_.

Referenced by PFBlockAlgo::link(), and PFBlockAlgo::linkPrefilter().

{return multilinks_.linkedClusters;}
unsigned reco::PFBlockElement::index ( ) const [inline]
virtual bool reco::PFBlockElement::isLinkedToDisplacedVertex ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 121 of file PFBlockElement.h.

Referenced by PFBlockAlgo::link().

{return false;}
bool reco::PFBlockElement::isMultilinksValide ( ) const [inline]

Definition at line 131 of file PFBlockElement.h.

References reco::PFMultiLinksTC::isValid, and multilinks_.

Referenced by PFBlockAlgo::link(), and PFBlockAlgo::linkPrefilter().

{return multilinks_.isValid;}
virtual bool reco::PFBlockElement::isPrimary ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 120 of file PFBlockElement.h.

{ return false; }
virtual bool reco::PFBlockElement::isSecondary ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementGsfTrack, and reco::PFBlockElementTrack.

Definition at line 119 of file PFBlockElement.h.

{ return false; }
void reco::PFBlockElement::lock ( ) [inline]

lock element

Definition at line 76 of file PFBlockElement.h.

References locked_.

Referenced by reco::PFBlock::addElement().

{locked_ = true;}
bool reco::PFBlockElement::locked ( ) const [inline]

locked ?

Definition at line 92 of file PFBlockElement.h.

References locked_.

{return locked_;}
virtual MuonRef reco::PFBlockElement::muonRef ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 105 of file PFBlockElement.h.

{ return MuonRef(); }
virtual void reco::PFBlockElement::setConversionRef ( const ConversionRef convRef,
TrackType  trType 
) [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 109 of file PFBlockElement.h.

References gather_cfg::cout.

Referenced by PFBlockAlgo::setInput().

                                                                                  { 
      std::cout << "Error in PFBlockElement::setConversionRef : this base class method is not implemented" << std::endl;}
virtual void reco::PFBlockElement::setDisplacedVertexRef ( const PFDisplacedTrackerVertexRef niref,
TrackType  trType 
) [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 107 of file PFBlockElement.h.

References gather_cfg::cout.

Referenced by PFBlockAlgo::setInput().

                                                                                                   { 
      std::cout << "Error in PFBlockElement::setDisplacedVertexRef : this base class method is not implemented" << std::endl;}
void reco::PFBlockElement::setIndex ( unsigned  index) [inline]

set index

Definition at line 95 of file PFBlockElement.h.

References index(), and index_.

Referenced by reco::PFBlock::addElement().

{ index_ = index; }
void reco::PFBlockElement::setIsValidMultilinks ( bool  isVal) [inline]

Definition at line 128 of file PFBlockElement.h.

References reco::PFMultiLinksTC::isValid, and multilinks_.

{multilinks_.isValid = isVal;}
void reco::PFBlockElement::setMultilinks ( const PFMultiLinksTC ml) [inline]

Definition at line 127 of file PFBlockElement.h.

References multilinks_.

{multilinks_ = ml;}
void reco::PFBlockElement::setMultilinksList ( const PFMultilinksType links) [inline]

Definition at line 129 of file PFBlockElement.h.

References reco::PFMultiLinksTC::linkedClusters, electronStore::links, and multilinks_.

{multilinks_.linkedClusters = links;}
virtual void reco::PFBlockElement::setMuonRef ( const MuonRef muref) [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 111 of file PFBlockElement.h.

References gather_cfg::cout.

Referenced by PFBlockAlgo::setInput().

                                                  { 
      std::cout << "Error in PFBlockElement::setMuonRef : this base class method is not implemented" << std::endl;}
virtual void reco::PFBlockElement::setTrackType ( TrackType  trType,
bool  value 
) [inline, virtual]

the trackType

Reimplemented in reco::PFBlockElementGsfTrack, and reco::PFBlockElementTrack.

Definition at line 88 of file PFBlockElement.h.

References gather_cfg::cout.

Referenced by PFBlockAlgo::setInput().

                                                            { 
             std::cout << "Error in PFBlockElement::setTrackType : this base class method is not implemented" << std::endl;}
virtual void reco::PFBlockElement::setV0Ref ( const VertexCompositeCandidateRef v0ref,
TrackType  trType 
) [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 113 of file PFBlockElement.h.

References gather_cfg::cout.

Referenced by PFBlockAlgo::setInput().

                                                                                     { 
      
      std::cout << "Error in PFBlockElement::setV0Ref : this base class method is not implemented" << std::endl;
    }
virtual reco::TrackRef reco::PFBlockElement::trackRef ( ) const [inline, virtual]
virtual PFRecTrackRef reco::PFBlockElement::trackRefPF ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 101 of file PFBlockElement.h.

Referenced by PFBlockAlgo::link().

{return PFRecTrackRef(); }
virtual bool reco::PFBlockElement::trackType ( TrackType  trType) const [inline, virtual]
Type reco::PFBlockElement::type ( ) const [inline]
void reco::PFBlockElement::unLock ( ) [inline]

unlock element

Definition at line 79 of file PFBlockElement.h.

References locked_.

{locked_ = false;}
virtual VertexCompositeCandidateRef reco::PFBlockElement::V0Ref ( ) const [inline, virtual]

Reimplemented in reco::PFBlockElementTrack.

Definition at line 106 of file PFBlockElement.h.

Referenced by PFBlockAlgo::testLinkByVertex().


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const PFBlockElement element 
) [friend]

Member Data Documentation

unsigned reco::PFBlockElement::index_ [protected]

index in block vector

Definition at line 147 of file PFBlockElement.h.

Referenced by index(), and setIndex().

locked flag.

Definition at line 144 of file PFBlockElement.h.

Referenced by lock(), locked(), and unLock().

type, see PFBlockElementType

Definition at line 139 of file PFBlockElement.h.

Referenced by type().