File indexing completed on 2024-04-06 12:15:35
0001 #ifndef HeavyFlavorAnalysis_SpecificDecay_BPHParticleChargeSelect_h
0002 #define HeavyFlavorAnalysis_SpecificDecay_BPHParticleChargeSelect_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoSelect.h"
0016
0017
0018
0019
0020 #include "DataFormats/RecoCandidate/interface/RecoCandidate.h"
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 class BPHParticleChargeSelect : public BPHRecoSelect {
0031 public:
0032
0033
0034 BPHParticleChargeSelect(int c) : charge(c ? (c > 0 ? 1 : -1) : 0) {}
0035
0036
0037 BPHParticleChargeSelect(const BPHParticleChargeSelect& x) = delete;
0038 BPHParticleChargeSelect& operator=(const BPHParticleChargeSelect& x) = delete;
0039
0040
0041
0042 ~BPHParticleChargeSelect() override = default;
0043
0044
0045
0046
0047 bool accept(const reco::Candidate& cand) const override {
0048 switch (charge) {
0049 default:
0050 case 0:
0051 return (cand.charge() != 0);
0052 case 1:
0053 return (cand.charge() > 0);
0054 case -1:
0055 return (cand.charge() < 0);
0056 }
0057 return true;
0058 };
0059
0060
0061 void setCharge(int c) {
0062 charge = (c ? (c > 0 ? 1 : -1) : 0);
0063 return;
0064 }
0065
0066
0067 double getCharge() const { return charge; }
0068
0069 private:
0070 int charge;
0071 };
0072
0073 #endif