111 std::auto_ptr<reco::BasicClusterCollection>
114 std::auto_ptr<reco::PreshowerClusterCollection>
122 outputSuperClusterCollection.clear();
123 outputPhotonCoreCollection.clear();
124 outputPhotonCollection.clear();
159 unsigned ncand=(
status)?pfCandidates->size():0;
162 for(
unsigned i=0;
i<ncand; ++
i ) {
170 pfClusters_.push_back(std::vector<const reco::PFCluster *>());
187 if(blockRef.
isNull())
continue;
281 bool validVertex=
true;
284 edm::LogWarning(
"PhotonProducer") <<
"Error! Can't get the product primary Vertex Collection "<<
"\n";
287 if (validVertex) vertexCollection = *(vertexHandle.
product());
290 bool validEcalRecHits=
true;
294 if (!barrelHitHandle.
isValid()) {
296 validEcalRecHits=
false;
298 if ( validEcalRecHits) barrelRecHits = *(barrelHitHandle.
product());
303 if (!endcapHitHandle.
isValid()) {
305 validEcalRecHits=
false;
307 if( validEcalRecHits) endcapRecHits = *(endcapHitHandle.
product());
321 if(status)
createPhotons(vertexCollection, pcRefProd, topology, &barrelRecHits, &endcapRecHits, hcalTowersHandle, isolationValues, outputPhotonCollection);
Abstract base class for a PFBlock element (track, cluster...)
std::vector< reco::PreshowerClusterCollection > preshowerClusters_
void createBasicClusterPtrs(const edm::OrphanHandle< reco::BasicClusterCollection > &basicClustersHandle)
std::string vertexProducer_
std::string PFPhotonCoreCollection_
edm::ESHandle< CaloTopology > theCaloTopo_
void createPhotons(reco::VertexCollection &vertexCollection, const edm::OrphanHandle< reco::PhotonCoreCollection > &superClustersHandle, const CaloTopology *topology, const EcalRecHitCollection *barrelRecHits, const EcalRecHitCollection *endcapRecHits, const edm::Handle< CaloTowerCollection > &hcalTowersHandle, const IsolationValueMaps &isolationValues, reco::PhotonCollection &photons)
edm::InputTag hcalTowers_
edm::InputTag endcapEcalHits_
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::string PFPhotonCollection_
void createSuperClusters(const reco::PFCandidateCollection &, reco::SuperClusterCollection &superClusters) const
void createBasicCluster(const reco::PFBlockElement &, reco::BasicClusterCollection &basicClusters, std::vector< const reco::PFCluster * > &, const reco::PFCandidate &coCandidate) const
std::vector< edm::InputTag > inputTagIsoVals_
const ElementsInBlocks & elementsInBlocks() const
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
std::vector< reco::SuperClusterRef > egSCRef_
std::vector< reco::SuperClusterCollection > superClusters_
bool isNull() const
Checks for null.
std::string PFBasicClusterCollection_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::string PFSuperClusterCollection_
std::vector< PreshowerCluster > PreshowerClusterCollection
collection of PreshowerCluster objects
edm::ESHandle< CaloGeometry > theCaloGeom_
void createPreshowerCluster(const reco::PFBlockElement &PFBE, reco::PreshowerClusterCollection &preshowerClusters, unsigned plane) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void createPreshowerClusterPtrs(const edm::OrphanHandle< reco::PreshowerClusterCollection > &preshowerClustersHandle)
bool fetchCandidateCollection(edm::Handle< reco::PFCandidateCollection > &c, const edm::InputTag &tag, const edm::Event &iEvent) const
edm::InputTag barrelEcalHits_
std::string PFPreshowerClusterCollection_
std::vector< int > photPFCandidateIndex_
const reco::PFCandidate & correspondingDaughterCandidate(const reco::PFCandidate &cand, const reco::PFBlockElement &pfbe) const
edm::InputTag inputTagPFCandidates_
std::vector< std::vector< const reco::PFCluster * > > pfClusters_
std::vector< reco::BasicClusterCollection > basicClusters_
T const * product() const
std::vector< edm::Handle< edm::ValueMap< double > > > IsolationValueMaps
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
std::vector< Photon > PhotonCollection
collectin of Photon objects
T const * product() const
std::vector< PhotonCore > PhotonCoreCollection
collectin of PhotonCore objects
std::vector< reco::CaloClusterPtrVector > preshowerClusterPtr_
Particle reconstructed by the particle flow algorithm.
void createPhotonCores(const edm::OrphanHandle< reco::SuperClusterCollection > &superClustersHandle, reco::PhotonCoreCollection &photonCores)
std::vector< reco::CaloClusterPtrVector > basicClusterPtr_
std::vector< reco::CandidatePtr > CandidatePtr_
virtual ParticleType particleId() const
reco::SuperClusterRef superClusterRef() const
return a reference to the corresponding SuperCluster if any