Skip to content

Commit

Permalink
Merge pull request #3396 from lgray/pfblockalgo_rebuild_62XSLHC
Browse files Browse the repository at this point in the history
Rewrite/Refactor of PFBlockAlgo -- SLHC Edition
  • Loading branch information
cmsbuild committed Apr 21, 2014
2 parents d3936db + e48b55f commit 785cdb0
Show file tree
Hide file tree
Showing 72 changed files with 3,679 additions and 3,337 deletions.
25 changes: 17 additions & 8 deletions DataFormats/ParticleFlowReco/interface/PFBlockElement.h
Expand Up @@ -42,7 +42,8 @@ namespace reco {
HFEM=8,
HFHAD=9,
SC=10,
HO=11
HO=11,
kNBETypes=12
};

enum TrackType {
Expand Down Expand Up @@ -97,13 +98,13 @@ namespace reco {
/// \return index
unsigned index() const {return index_;}

virtual reco::TrackRef trackRef() const {return reco::TrackRef(); }
virtual PFRecTrackRef trackRefPF() const {return PFRecTrackRef(); }
virtual PFClusterRef clusterRef() const {return PFClusterRef(); }
virtual PFDisplacedTrackerVertexRef displacedVertexRef(TrackType trType) const { return PFDisplacedTrackerVertexRef(); }
virtual ConversionRef convRef() const { return ConversionRef();}
virtual MuonRef muonRef() const { return MuonRef(); }
virtual VertexCompositeCandidateRef V0Ref() const { return VertexCompositeCandidateRef(); }
virtual const reco::TrackRef& trackRef() const {return nullTrack_; }
virtual const PFRecTrackRef& trackRefPF() const {return nullPFRecTrack_; }
virtual const PFClusterRef& clusterRef() const {return nullPFCluster_; }
virtual const PFDisplacedTrackerVertexRef& displacedVertexRef(TrackType trType) const { return nullPFDispVertex_; }
virtual const ConversionRef& convRef() const { return nullConv_;}
virtual const MuonRef& muonRef() const { return nullMuon_; }
virtual const VertexCompositeCandidateRef& V0Ref() const { return nullVertex_; }
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef& niref, TrackType trType) {
std::cout << "Error in PFBlockElement::setDisplacedVertexRef : this base class method is not implemented" << std::endl;}
virtual void setConversionRef(const ConversionRef& convRef, TrackType trType) {
Expand Down Expand Up @@ -149,6 +150,14 @@ namespace reco {
// Glowinski & Gouzevitch
PFMultiLinksTC multilinks_;
// ! Glowinski & Gouzevitch

const static reco::TrackRef nullTrack_;
const static PFRecTrackRef nullPFRecTrack_;
const static PFClusterRef nullPFCluster_;
const static PFDisplacedTrackerVertexRef nullPFDispVertex_;
const static ConversionRef nullConv_;
const static MuonRef nullMuon_;
const static VertexCompositeCandidateRef nullVertex_;

};
}
Expand Down
4 changes: 2 additions & 2 deletions DataFormats/ParticleFlowReco/interface/PFBlockElementBrem.h
Expand Up @@ -27,12 +27,12 @@ namespace reco {
const char* tab = " " ) const;


GsfPFRecTrackRef GsftrackRefPF() const {
const GsfPFRecTrackRef& GsftrackRefPF() const {
return GsftrackRefPF_;
}

/// \return reference to the corresponding Track
reco::GsfTrackRef GsftrackRef() const {
const reco::GsfTrackRef& GsftrackRef() const {
return GsftrackRef_;
}

Expand Down
Expand Up @@ -5,6 +5,8 @@

#include "DataFormats/ParticleFlowReco/interface/PFBlockElement.h"
#include "DataFormats/ParticleFlowReco/interface/PFClusterFwd.h"
#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
#include "DataFormats/EgammaReco/interface/SuperCluster.h"

namespace reco {

Expand All @@ -27,14 +29,19 @@ namespace reco {
PFBlockElement* clone() const { return new PFBlockElementCluster(*this); }

/// \return reference to the corresponding cluster
PFClusterRef clusterRef() const {return clusterRef_;}
const PFClusterRef& clusterRef() const {return clusterRef_;}
const SuperClusterRef& superClusterRef() const { return superClusterRef_;}

void setSuperClusterRef(const SuperClusterRef& ref)
{ superClusterRef_ = ref;}

void Dump(std::ostream& out = std::cout,
const char* tab = " " ) const;

private:
/// reference to the corresponding cluster
PFClusterRef clusterRef_;
SuperClusterRef superClusterRef_;
};
}

Expand Down
Expand Up @@ -45,12 +45,12 @@ namespace reco {
}

/// \return reference to the corresponding PFGsfRecTrack
GsfPFRecTrackRef GsftrackRefPF() const {
const GsfPFRecTrackRef& GsftrackRefPF() const {
return GsftrackRefPF_;
}

/// \return reference to the corresponding GsfTrack
reco::GsfTrackRef GsftrackRef() const {
const reco::GsfTrackRef& GsftrackRef() const {
return GsftrackRef_;
}

Expand Down
Expand Up @@ -33,10 +33,10 @@ namespace reco {
PFBlockElement* clone() const { return new PFBlockElementSuperCluster(*this); }

/// \return reference to the corresponding cluster
SuperClusterRef superClusterRef() const {return superClusterRef_;}
const SuperClusterRef& superClusterRef() const {return superClusterRef_;}

/// \return reference to seeding photon
PhotonRef photonRef() const {return photonRef_;}
const PhotonRef& photonRef() const {return photonRef_;}

void Dump(std::ostream& out = std::cout,
const char* tab = " " ) const;
Expand Down
15 changes: 8 additions & 7 deletions DataFormats/ParticleFlowReco/interface/PFBlockElementTrack.h
Expand Up @@ -51,10 +51,10 @@ namespace reco {

/// \return reference to the corresponding PFRecTrack
/// please do not use this function after the block production stage!
PFRecTrackRef trackRefPF() const { return trackRefPF_; }
const PFRecTrackRef& trackRefPF() const { return trackRefPF_; }

/// \return reference to the corresponding Track
reco::TrackRef trackRef() const { return trackRef_; }
const reco::TrackRef& trackRef() const { return trackRef_; }

/// check if the track is secondary
bool isSecondary() const {
Expand All @@ -73,12 +73,13 @@ namespace reco {
}

/// \return the displaced vertex associated
PFDisplacedTrackerVertexRef displacedVertexRef(TrackType trType) const {
const PFDisplacedTrackerVertexRef&
displacedVertexRef(TrackType trType) const {
if (trType == T_TO_DISP)
return displacedVertexDaughterRef_;
else if (trType == T_FROM_DISP)
return displacedVertexMotherRef_;
else return PFDisplacedTrackerVertexRef();
else return nullPFDispVertex_;
}

/// \set the ref to the displaced vertex interaction
Expand All @@ -91,23 +92,23 @@ namespace reco {
}

/// \return reference to the corresponding Muon
reco::MuonRef muonRef() const { return muonRef_; }
const reco::MuonRef& muonRef() const { return muonRef_; }

/// \set reference to the Muon
void setMuonRef(const MuonRef& muref) {
muonRef_=muref; setTrackType(MUON,true);
}

/// \return ref to original recoConversion
ConversionRef convRef() const {return convRef_;}
const ConversionRef& convRef() const {return convRef_;}

/// \set the ref to gamma conversion
void setConversionRef(const ConversionRef& convRef, TrackType trType) {
convRef_ = convRef; setTrackType(trType,true);
}

/// \return ref to original V0
VertexCompositeCandidateRef V0Ref() const {return v0Ref_;}
const VertexCompositeCandidateRef& V0Ref() const {return v0Ref_;}

/// \set the ref to V0
void setV0Ref(const VertexCompositeCandidateRef& V0Ref, TrackType trType) {
Expand Down
2 changes: 1 addition & 1 deletion DataFormats/ParticleFlowReco/interface/PFConversion.h
Expand Up @@ -36,7 +36,7 @@ namespace reco {
~PFConversion();

const reco::ConversionRef& originalConversion() const {return originalConversion_;}
std::vector<reco::PFRecTrackRef> pfTracks() const {return pfTracks_ ;}
const std::vector<reco::PFRecTrackRef>& pfTracks() const {return pfTracks_ ;}


private:
Expand Down
Expand Up @@ -19,7 +19,7 @@ class PFDisplacedTrackerVertex {
PFDisplacedTrackerVertex() {}
PFDisplacedTrackerVertex( const PFDisplacedVertexRef& nuclref, const PFRecTrackRefVector& pfRecTracks) : displacedVertexRef_(nuclref), pfRecTracks_(pfRecTracks) {}

const PFRecTrackRefVector pfRecTracks() const {return pfRecTracks_;}
const PFRecTrackRefVector& pfRecTracks() const {return pfRecTracks_;}

const bool isIncomingTrack(const reco::PFRecTrackRef originalTrack) const {
reco::TrackBaseRef trackBaseRef(originalTrack->trackRef());
Expand All @@ -31,7 +31,7 @@ class PFDisplacedTrackerVertex {
return displacedVertexRef_->isOutgoingTrack(trackBaseRef);
}

const PFDisplacedVertexRef displacedVertexRef() const {return displacedVertexRef_;}
const PFDisplacedVertexRef& displacedVertexRef() const {return displacedVertexRef_;}

private :
// Reference to the initial DisplacedTrackerVertex
Expand Down
4 changes: 2 additions & 2 deletions DataFormats/ParticleFlowReco/interface/PFV0.h
Expand Up @@ -37,10 +37,10 @@ namespace reco {
const reco::VertexCompositeCandidateRef& originalV0() const {return originalV0_;}

/// Vector of a Refs of PFRecTrack
std::vector<reco::PFRecTrackRef> pfTracks() const {return pfTracks_ ;}
const std::vector<reco::PFRecTrackRef>& pfTracks() const {return pfTracks_ ;}

/// Vector of a Refs of Track
std::vector<reco::TrackRef> Tracks() const {return tracks_;}
const std::vector<reco::TrackRef>& Tracks() const {return tracks_;}

private:

Expand Down
8 changes: 8 additions & 0 deletions DataFormats/ParticleFlowReco/src/PFBlockElement.cc
Expand Up @@ -5,6 +5,14 @@
#include "DataFormats/ParticleFlowReco/interface/PFBlockElementCluster.h"
#include "DataFormats/ParticleFlowReco/interface/PFBlockElementSuperCluster.h"

const reco::TrackRef reco::PFBlockElement::nullTrack_ = reco::TrackRef();
const reco::PFRecTrackRef reco::PFBlockElement::nullPFRecTrack_ = reco::PFRecTrackRef();
const reco::PFClusterRef reco::PFBlockElement::nullPFCluster_ = reco::PFClusterRef();
const reco::PFDisplacedTrackerVertexRef reco::PFBlockElement::nullPFDispVertex_ =
reco::PFDisplacedTrackerVertexRef();
const reco::ConversionRef reco::PFBlockElement::nullConv_ = reco::ConversionRef();
const reco::MuonRef reco::PFBlockElement::nullMuon_ = reco::MuonRef();
const reco::VertexCompositeCandidateRef reco::PFBlockElement::nullVertex_ = reco::VertexCompositeCandidateRef();

using namespace reco;

Expand Down
6 changes: 3 additions & 3 deletions DataFormats/ParticleFlowReco/src/PFTrack.cc
Expand Up @@ -74,9 +74,9 @@ void PFTrack::calculatePositionREP() {


const reco::PFTrajectoryPoint& PFTrack::extrapolatedPoint(unsigned layerid) const {

const unsigned offset_layerid = nTrajectoryMeasurements() + layerid;
if( layerid >= reco::PFTrajectoryPoint::NLayers ||
nTrajectoryMeasurements() + layerid >= trajectoryPoints_.size() ) {
offset_layerid >= trajectoryPoints_.size() ) {

// cout<<(*this)<<endl;
// cout<<"lid "<<layerid<<" "<<nTrajectoryMeasurements()<<" "<<trajectoryPoints_.size()<<endl;
Expand All @@ -92,7 +92,7 @@ const reco::PFTrajectoryPoint& PFTrack::extrapolatedPoint(unsigned layerid) cons
if (layerid < indexInnermost_)
return trajectoryPoints_[ layerid ];
else
return trajectoryPoints_[ nTrajectoryMeasurements() + layerid ];
return trajectoryPoints_[ offset_layerid ];
}


Expand Down
10 changes: 9 additions & 1 deletion DataFormats/ParticleFlowReco/src/classes_def_2.xml
Expand Up @@ -112,6 +112,13 @@
<class name="reco::PFBlockElement" ClassVersion="11">
<version ClassVersion="11" checksum="3944635097"/>
<!-- <field name="multilinkslinks_" transient="true"/> -->
<field name="nullTrack_" transient="true"/>
<field name="nullPFRecTrack_" transient="true"/>
<field name="nullPFCluster_" transient="true"/>
<field name="nullPFDispVertex_" transient="true"/>
<field name="nullConv_" transient="true"/>
<field name="nullMuon_" transient="true"/>
<field name="nullVertex_" transient="true"/>
</class>
<class name="std::vector<reco::PFBlockElement *>" />
<class name="edm::OwnVector<reco::PFBlockElement, edm::ClonePolicy<reco::PFBlockElement> >"/>
Expand Down Expand Up @@ -141,8 +148,9 @@
</class>


<class name="reco::PFBlockElementCluster" ClassVersion="10">
<class name="reco::PFBlockElementCluster" ClassVersion="11">
<version ClassVersion="10" checksum="2503385411"/>
<version ClassVersion="11" checksum="2936163017"/>
</class>

<class name="std::map<unsigned int,reco::PFBlock::Link>"/>
Expand Down

0 comments on commit 785cdb0

Please sign in to comment.