Back to home page

EIC code displayed by LXR

 
 

    


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     /// same as Result, but with results for all parameter variations (e.g.
0049     /// when varying the QCUT scale)
0050     std::vector<ATOOLS::Weights_Map> CombinedResults() const;
0051 
0052   };
0053 
0054 }
0055 
0056 #endif