Go to the documentation of this file. 1 #ifndef __PFBlockElement__
2 #define __PFBlockElement__
19 class PFBlockElementCluster;
20 class PFBlockElementTrack;
57 virtual void Dump(std::ostream&
out =
std::cout,
const char* tab =
" ")
const;
76 std::cout <<
"Error in PFBlockElement::setTrackType : this base class method is not implemented" << std::endl;
96 std::cout <<
"Error in PFBlockElement::setDisplacedVertexRef : this base class method is not implemented"
100 std::cout <<
"Error in PFBlockElement::setConversionRef : this base class method is not implemented" << std::endl;
103 std::cout <<
"Error in PFBlockElement::setMuonRef : this base class method is not implemented" << std::endl;
106 std::cout <<
"Error in PFBlockElement::setV0Ref : this base class method is not implemented" << std::endl;
120 return it->second.isValid;
bool isTimeValid() const
do we have a valid time information
const static ConversionRefVector nullConv_
virtual bool trackType(TrackType trType) const
void setIndex(unsigned index)
set index
float time_
timing information (valid if timeError_ >= 0)
virtual const PFRecTrackRef & trackRefPF() const
const static reco::TrackRef nullTrack_
std::vector< std::pair< double, double > > PFMultilinksType
Abstract This class is used by the KDTree Track / Ecal Cluster linker to store all found links.
virtual const VertexCompositeCandidateRef & V0Ref() const
std::map< reco::PFBlockElement::Type, PFMultiLinksTC > multilinks_
virtual bool isLinkedToDisplacedVertex() const
const static VertexCompositeCandidateRef nullVertex_
unsigned index_
index in block vector
void setIsValidMultilinks(bool isVal, Type type)
bool isMultilinksValide(Type type) const
const static PFClusterRef nullPFCluster_
virtual void setConversionRef(const ConversionRef &convRef, TrackType trType)
void setTime(float time, float timeError=0.f)
\set the timing information
virtual bool isSecondary() const
virtual bool isPrimary() const
void setMultilinks(const PFMultiLinksTC &ml, Type type)
virtual void Dump(std::ostream &out=std::cout, const char *tab=" ") const
print the object inside the element
virtual ~PFBlockElement()
destructor
void unLock()
unlock element
virtual void setMuonRef(const MuonRef &muref)
virtual const ConversionRefVector & convRefs() const
virtual PFBlockElement * clone() const =0
necessary to have the edm::OwnVector<PFBlockElement> working
virtual const reco::TrackRef & trackRef() const
virtual const MuonRef & muonRef() const
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Abstract base class for a PFBlock element (track, cluster...)
const static PFRecTrackRef nullPFRecTrack_
virtual const PFDisplacedTrackerVertexRef & displacedVertexRef(TrackType trType) const
const static MuonRef nullMuon_
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
const static PFDisplacedTrackerVertexRef nullPFDispVertex_
const PFMultilinksType & getMultilinks(Type type) const
float timeError_
timing information uncertainty (<0 if timing not available)
virtual void setTrackType(TrackType trType, bool value)
\set the trackType
PFBlockElement(Type type=NONE)
standard constructor
virtual void setV0Ref(const VertexCompositeCandidateRef &v0ref, TrackType trType)
virtual const PFClusterRef & clusterRef() const
bool locked() const
locked ?