14 embeddedSuperCluster_(
false),
15 embeddedSeedCluster_(
false),
16 embeddedRecHits_(
false),
17 passElectronVeto_(
false),
33 maxDRRawEnergy_(-999.),
53 embeddedSuperCluster_(
false),
54 embeddedSeedCluster_(
false),
55 embeddedRecHits_(
false),
56 passElectronVeto_(
false),
72 maxDRRawEnergy_(-999.),
92 embeddedSuperCluster_(
false),
93 embeddedSeedCluster_(
false),
94 embeddedRecHits_(
false),
95 passElectronVeto_(
false),
111 maxDRRawEnergy_(-999.),
112 subClusRawE1_(-999.),
113 subClusRawE2_(-999.),
114 subClusRawE3_(-999.),
115 subClusDPhi1_(-999.),
116 subClusDPhi2_(-999.),
117 subClusDPhi3_(-999.),
118 subClusDEta1_(-999.),
119 subClusDEta2_(-999.),
120 subClusDEta3_(-999.),
131 embeddedSuperCluster_(
false),
132 embeddedSeedCluster_(
false),
133 embeddedRecHits_(
false),
134 passElectronVeto_(
false),
135 hasPixelSeed_(
false),
150 maxDRRawEnergy_(-999.),
151 subClusRawE1_(-999.),
152 subClusRawE2_(-999.),
153 subClusRawE3_(-999.),
154 subClusDPhi1_(-999.),
155 subClusDPhi2_(-999.),
156 subClusDPhi3_(-999.),
157 subClusDEta1_(-999.),
158 subClusDEta2_(-999.),
159 subClusDEta3_(-999.),
176 out <<
"\tpat::Photon: ";
177 out << std::setiosflags(std::ios::right);
178 out << std::setiosflags(std::ios::fixed);
179 out << std::setprecision(3);
180 out <<
" E/pT/eta/phi "
194 std::unique_ptr<std::vector<reco::SuperCluster> > sc(
new std::vector<reco::SuperCluster>(
superCluster_));
196 (*sc)[0].setSeed(
seed());
198 if (
basicClusters_.size() && !(*sc)[0].clusters().isAvailable()) {
200 for (
unsigned int iclus=0; iclus<
basicClusters_.size(); ++iclus) {
203 (*sc)[0].setClusters(clusters);
210 (*sc)[0].setPreshowerClusters(clusters);
256 for(;itscl!=itsclE;++itscl){
268 for(;itscl!=itsclE;++itscl){
284 for (std::vector<IdPair>::const_iterator it =
photonIDs_.begin(), ed =
photonIDs_.end(); it != ed; ++it) {
285 if (it->first == name)
return it->second;
288 ex <<
"pat::Photon: the ID " << name <<
" can't be found in this pat::Photon.\n";
289 ex <<
"The available IDs are: ";
290 for (std::vector<IdPair>::const_iterator it =
photonIDs_.begin(), ed =
photonIDs_.end(); it != ed; ++it) {
291 ex <<
"'" << it->first <<
"' ";
298 for (std::vector<IdPair>::const_iterator it =
photonIDs_.begin(), ed =
photonIDs_.end(); it != ed; ++it) {
299 if (it->first == name)
return true;
321 throw cms::Exception(
"Unsupported",
"setAssociatedPackedPFCandidates pointing to a collection other than the one from setPackedPFCandidateCollection");
void setAssociatedPackedPFCandidates(const edm::RefVector< pat::PackedCandidateCollection > &refvector)
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
Analysis-level Photon class.
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
virtual float pt() const
transverse momentum
Photon()
default constructor
void push_back(Ptr< T > const &iPtr)
virtual float phi() const
momentum azimuthal angle
reco::CaloClusterPtr seed() const
direct access to the seed cluster
void embedBasicClusters()
method to store the electron's basic clusters
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
void embedSuperCluster()
method to store the photon's supercluster internally
std::vector< reco::SuperCluster > superCluster_
edm::Ptr< CaloCluster > CaloClusterPtr
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron's preshower clusters internally.
edm::Ref< SuperClusterCollection > SuperClusterRef
reference to an object in a collection of SuperCluster objects
std::vector< reco::CaloCluster > seedCluster_
Place to store electron's seed cluster internally.
virtual double energy() const
energy
edm::RefVector< pat::PackedCandidateCollection > associatedPackedPFCandidates() const
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
std::ostream & operator<<(std::ostream &, BeamSpot beam)
ProductID id() const
Accessor for product ID.
virtual float eta() const
momentum pseudorapidity
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
void embedSeedCluster()
method to store the electron's seedcluster internally
void embedPreshowerClusters()
method to store the electron's preshower clusters
bool isPhotonIDAvailable(const std::string &name) const
Returns true if a specific ID is available in this pat::Photon.
Bool_t photonID(const std::string &name) const
std::vector< IdPair > photonIDs_
bool embeddedSuperCluster_
edm::AtomicPtrCache< std::vector< reco::SuperCluster > > superClusterRelinked_
Place to temporarily store the electron's supercluster after relinking the seed to it...
EcalRecHitCollection recHits_
Place to store electron's RecHits internally (5x5 around seed+ all RecHits)
bool embeddedRecHits_
True if RecHits stored internally.
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
bool set(std::unique_ptr< T > iNewValue) const
tuple idx
DEBUGGING if hasattr(process,"trackMonIterativeTracking2012"): print "trackMonIterativeTracking2012 D...
reco::SuperClusterRef superCluster() const
override the superCluster method from CaloJet, to access the internal storage of the supercluster ...
virtual ~Photon()
destructor
bool embeddedSeedCluster_
True if seed cluster is stored internally.
bool isNonnull() const
Checks for non-null.
ProductID id() const
Accessor for product ID.
Templated PAT object container.
std::vector< uint16_t > associatedPackedFCandidateIndices_
volatile std::atomic< bool > shutdown_flag false
void setPackedPFCandidateCollection(const edm::RefProd< pat::PackedCandidateCollection > &refprod)
References to PFCandidates (e.g. to recompute isolation)
void embedRecHits(const EcalRecHitCollection *rechits)
method to store the RecHits internally - can be called from the PATElectronProducer ...
reco::CandidatePtr sourceCandidatePtr(size_type i) const
get the source candidate pointer with index i
std::vector< reco::CaloCluster > basicClusters_
Place to store electron's basic clusters internally.