Back to home page

sPhenix code displayed by LXR

 
 

    


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, // Maximizes single interactions
0021     STRICT = 1, // maximizes percentage of single interactions
0022     DRACONIAN = 2, // Pileup < 1%
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 /* PILEUPREJECTOR_H */
0057