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);
179 out << std::setprecision(3);
180 out <<
" E/pT/eta/phi " 191 if (embeddedSuperCluster_) {
192 if (embeddedSeedCluster_ || !basicClusters_.empty() || !preshowerClusters_.empty()) {
193 if (!superClusterRelinked_.isSet()) {
194 std::unique_ptr<std::vector<reco::SuperCluster> >
sc(
new std::vector<reco::SuperCluster>(
superCluster_));
195 if (embeddedSeedCluster_ && !(*sc)[0].
seed().isAvailable()) {
196 (*sc)[0].setSeed(
seed());
198 if (!basicClusters_.empty() && !(*sc)[0].clusters().isAvailable()) {
200 for (
unsigned int iclus=0; iclus<basicClusters_.size(); ++iclus) {
203 (*sc)[0].setClusters(clusters);
205 if (!preshowerClusters_.empty() && !(*sc)[0].preshowerClusters().isAvailable()) {
207 for (
unsigned int iclus=0; iclus<preshowerClusters_.size(); ++iclus) {
210 (*sc)[0].setPreshowerClusters(clusters);
212 superClusterRelinked_.set(
std::move(sc));
225 if(embeddedSeedCluster_){
237 embeddedSuperCluster_ =
true;
243 seedCluster_.clear();
246 embeddedSeedCluster_ =
true;
252 basicClusters_.clear();
256 for(;itscl!=itsclE;++itscl){
257 basicClusters_.push_back( **itscl ) ;
264 preshowerClusters_.clear();
268 for(;itscl!=itsclE;++itscl){
269 preshowerClusters_.push_back( **itscl ) ;
276 if (rechits!=
nullptr) {
278 embeddedRecHits_ =
true;
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;
307 for (uint16_t
idx : associatedPackedFCandidateIndices_) {
316 if (i >= associatedPackedFCandidateIndices_.size()) {
Analysis-level Photon class.
double eta() const final
momentum pseudorapidity
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
embedPreshowerClusters
embed in AOD externally stored the electron's basic clusters
CandidatePtr sourceCandidatePtr(size_type i) const override
void push_back(Ptr< T > const &iPtr)
embedRecHits
embed in AOD externally stored track (note: gsf electrons don't have a track)
double pt() const final
transverse momentum
edm::Ptr< CaloCluster > CaloClusterPtr
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
edm::Ref< SuperClusterCollection > SuperClusterRef
reference to an object in a collection of SuperCluster objects
Photon()
default constructor
embedBasicClusters
embed in AOD externally stored the electron's seedcluster
std::ostream & operator<<(std::ostream &, BeamSpot beam)
double energy() const final
energy
~Photon() override
destructor
embedSeedCluster
embed in AOD externally stored supercluster
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
SuperClusterRef superCluster_
embedSuperCluster
embed in AOD externally stored gsf track
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
double phi() const final
momentum azimuthal angle