File indexing completed on 2024-04-06 12:04:06
0001 #ifndef EgammaCandidates_PhotonCore_h
0002 #define EgammaCandidates_PhotonCore_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0016 #include "DataFormats/EgammaCandidates/interface/PhotonCoreFwd.h"
0017 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0018 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0019 #include "DataFormats/EgammaReco/interface/ElectronSeed.h"
0020 #include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h"
0021
0022 namespace reco {
0023
0024 class PhotonCore {
0025 public:
0026
0027
0028
0029
0030
0031 PhotonCore(const reco::SuperClusterRef &scl) : superCluster_(scl), isPFlowPhoton_(false), isStandardPhoton_(true) {}
0032
0033
0034 PhotonCore() : isPFlowPhoton_(false), isStandardPhoton_(false) {}
0035
0036
0037
0038
0039
0040
0041
0042
0043 virtual ~PhotonCore() {}
0044
0045 PhotonCore *clone() const { return new PhotonCore(*this); }
0046
0047
0048 void setSuperCluster(const reco::SuperClusterRef &r) { superCluster_ = r; }
0049
0050 void setParentSuperCluster(const reco::SuperClusterRef &r) { parentSuperCluster_ = r; }
0051
0052 void addConversion(const reco::ConversionRef &r) { conversions_.push_back(r); }
0053
0054 void addOneLegConversion(const reco::ConversionRef &r) { conversionsOneLeg_.push_back(r); }
0055
0056 void addElectronPixelSeed(const reco::ElectronSeedRef &r) { electronSeed_.push_back(r); }
0057
0058 void setPFlowPhoton(const bool prov) { isPFlowPhoton_ = prov; }
0059 void setStandardPhoton(const bool prov) { isStandardPhoton_ = prov; }
0060
0061
0062 reco::SuperClusterRef superCluster() const { return superCluster_; }
0063
0064 reco::SuperClusterRef parentSuperCluster() const { return parentSuperCluster_; }
0065
0066
0067
0068
0069
0070
0071
0072 reco::ConversionRefVector conversions() const { return conversions_; }
0073
0074 reco::ConversionRefVector conversionsOneLeg() const { return conversionsOneLeg_; }
0075
0076 void setConversions(const reco::ConversionRefVector &conversions) { conversions_ = conversions; }
0077 void setConversionsOneLeg(const reco::ConversionRefVector &conversions) { conversionsOneLeg_ = conversions; }
0078
0079
0080 reco::ElectronSeedRefVector electronPixelSeeds() const { return electronSeed_; }
0081 bool isPFlowPhoton() const { return isPFlowPhoton_; }
0082 bool isStandardPhoton() const { return isStandardPhoton_; }
0083
0084 private:
0085
0086 reco::SuperClusterRef superCluster_;
0087
0088 reco::ConversionRefVector conversions_;
0089
0090 reco::ConversionRefVector conversionsOneLeg_;
0091
0092 reco::ElectronSeedRefVector electronSeed_;
0093
0094 reco::SuperClusterRef parentSuperCluster_;
0095 bool isPFlowPhoton_;
0096 bool isStandardPhoton_;
0097 };
0098
0099 }
0100
0101 #endif