File indexing completed on 2025-04-19 09:10:12
0001 #ifndef PHASIC_Selectors_Combined_Selector_H
0002 #define PHASIC_Selectors_Combined_Selector_H
0003
0004 #include "PHASIC++/Selectors/Selector.H"
0005
0006 namespace PHASIC {
0007
0008 class Combined_Selector: public Selector_Base {
0009 protected:
0010
0011 long int m_count;
0012 int m_on, m_res, m_rsres;
0013 std::vector<Selector_Base *> m_sels;
0014 std::vector<std::pair<size_t,double> > m_osc;
0015
0016 public:
0017
0018 Combined_Selector(Process_Base *const proc);
0019
0020 ~Combined_Selector();
0021
0022 bool Initialize(const Selector_Key &key);
0023
0024 bool Trigger(const ATOOLS::Vec4D_Vector &p,
0025 const ATOOLS::Flavour *fl=NULL, size_t n=0);
0026 bool RSTrigger(ATOOLS::NLO_subevtlist *const subs);
0027 bool Trigger(ATOOLS::Selector_List &sl);
0028
0029 bool Pass() const;
0030
0031 void BuildCuts(Cut_Data *);
0032 void AddOnshellCondition(size_t,double);
0033
0034 void Output();
0035
0036 Selector_Base *GetSelector(const std::string &name) const;
0037 void ListSelectors() const;
0038
0039 inline void SetOn(const int on) { m_on=on; }
0040
0041 inline int On() const { return m_on; }
0042
0043 inline int Result() const { return m_on?m_res:1; }
0044 inline int RSResult() const { return m_on?m_rsres:1; }
0045
0046 inline void SetResult(const int res) { m_res=res; }
0047
0048
0049
0050 std::vector<ATOOLS::Weights_Map> CombinedResults() const;
0051
0052 };
0053
0054 }
0055
0056 #endif