File indexing completed on 2025-08-05 08:14:32
0001 #ifndef PILEUPREJECTOR_H
0002 #define PILEUPREJECTOR_H
0003
0004 #include <cstdint>
0005 #include <string>
0006
0007 class Gl1Packet;
0008 class LL1Out;
0009 class PHCompositeNode;
0010 class TriggerRunInfo;
0011
0012 class PileupRejector
0013 {
0014 public:
0015 PileupRejector() = default;
0016 ~PileupRejector() = default;
0017
0018 enum PileupCutStrength
0019 {
0020 COMFORT = 0,
0021 STRICT = 1,
0022 DRACONIAN = 2,
0023 };
0024
0025
0026 int decodeEvent(PHCompositeNode *topNode);
0027
0028 bool isPileup();
0029 void setCutStrength(PileupCutStrength cutstrength) {m_cutstrength = cutstrength; }
0030
0031 void Print();
0032
0033 private:
0034
0035 double m_chargesum{0};
0036 int m_hitcut{2};
0037 double m_prodsigma{0};
0038 double m_avgsigma{0};
0039 double m_maxsigma{0};
0040 double m_proddelta{0};
0041 double m_avgdelta{0};
0042 double m_maxdelta{0};
0043 double m_pileup{0};
0044
0045 double m_draconian_time_cut{0.1};
0046 double m_strict_time_cut{0.2};
0047 double m_comfort_time_cut{0.5};
0048 double m_draconian_charge_cut{0.5};
0049 double m_strict_charge_cut{4.5};
0050 double m_comfort_charge_cut{9.5};
0051
0052 PileupCutStrength m_cutstrength{PileupCutStrength::DRACONIAN};
0053
0054 };
0055
0056 #endif
0057