Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:42

0001 #ifndef Analysis_Observables_Six_Particle_Observables_H
0002 #define Analysis_Observables_Six_Particle_Observables_H
0003 
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 
0006 namespace ANALYSIS {
0007 
0008   class Six_Particle_Observable_Base : public Primitive_Observable_Base {  
0009   protected:
0010     bool f_special;
0011     std::vector<ATOOLS::Flavour> m_flavs;
0012     void virtual Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0013                           const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0014                           const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0015                           double=1.,double=1.) = 0; 
0016     void virtual Evaluate(double,double=1.,double=1.); 
0017   public:
0018     Six_Particle_Observable_Base(const std::vector<ATOOLS::Flavour> &,
0019           int,double,double,int,
0020           const std::string& listname,
0021           const std::string& name);
0022     void virtual Evaluate(int,const ATOOLS::Vec4D *,
0023         const ATOOLS::Flavour *,double=1.,double=1.);
0024     void virtual Evaluate(const ATOOLS::Particle_List &,
0025         double=1.,double=1.);
0026   };
0027 
0028   //==========================================================================
0029 
0030   class Six_Particle_PT : public Six_Particle_Observable_Base {
0031     void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0032                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0033                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0034                   double=1.,double=1.);
0035   public:
0036     Six_Particle_PT(const std::vector<ATOOLS::Flavour>&,
0037                     int,double,double,int,
0038                     const std::string& listname);
0039     Primitive_Observable_Base* Copy() const;
0040   };
0041 
0042   class Six_Particle_ET : public Six_Particle_Observable_Base {
0043     void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0044                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0045                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0046                   double=1.,double=1.);
0047   public:
0048     Six_Particle_ET(const std::vector<ATOOLS::Flavour>&,
0049                     int,double,double,int,
0050                     const std::string& listname);
0051     Primitive_Observable_Base* Copy() const;
0052   };
0053 
0054   class Six_Particle_Mass : public Six_Particle_Observable_Base {
0055     void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0056                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0057                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0058                   double=1.,double=1.);
0059   public:
0060     Six_Particle_Mass(const std::vector<ATOOLS::Flavour>&,
0061                       int,double,double,int,
0062                       const std::string& listname);
0063     Primitive_Observable_Base* Copy() const;
0064   };
0065 
0066   class Two_Partontriplett_DeltaPhi : public Six_Particle_Observable_Base {  
0067     void Evaluate(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0068                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0069                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0070                   double=1.,double=1.);
0071   public:
0072     Two_Partontriplett_DeltaPhi(const std::vector<ATOOLS::Flavour>&,
0073                                 int, double, double, int,
0074                                 const std::string& listname);
0075     Primitive_Observable_Base* Copy() const;
0076   };
0077 
0078   class Two_Partontriplett_DeltaEta : public Six_Particle_Observable_Base {  
0079     void Evaluate(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0080                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0081                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0082                   double=1.,double=1.);
0083   public:
0084     Two_Partontriplett_DeltaEta(const std::vector<ATOOLS::Flavour>&,
0085                                 int, double, double, int,
0086                                 const std::string& listname);
0087     Primitive_Observable_Base* Copy() const;
0088   };
0089 
0090   class Two_Partontriplett_DR : public Six_Particle_Observable_Base {  
0091     void Evaluate(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0092                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0093                   const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0094                   double=1.,double=1.);
0095   public:
0096     Two_Partontriplett_DR(const std::vector<ATOOLS::Flavour>&,
0097                           int, double, double, int,
0098                           const std::string& listname);
0099     Primitive_Observable_Base* Copy() const;
0100   };
0101 
0102 
0103   // ======================================================================
0104 
0105 //   class Di_Mass : public Primitive_Observable_Base {
0106 //   public:
0107 //     Di_Mass(unsigned int type,double xmin,double xmax,int nbins,
0108 //      const std::string & =std::string("Jets"));
0109 //     void Evaluate(const ATOOLS::Blob_List & blobs,double value, int);
0110 //     Primitive_Observable_Base * Copy() const ;
0111 //   };
0112 
0113   // =====================================================================
0114 
0115 //   class Six_Particle_PlaneAngleCMS : public Six_Particle_Observable_Base {
0116 //     void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &, 
0117 //                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0118 //                   double=1.,int=1); 
0119 //   public:
0120 //     Six_Particle_PlaneAngleCMS(const std::vector<ATOOLS::Flavour>&,
0121 //                              int,double,double,int,
0122 //                              const std::string& listname);//=std::string("NRAngle:"));
0123 //     Primitive_Observable_Base* Copy() const;
0124 //   };
0125 
0126   // =====================================================================
0127 
0128 //   class Six_Particle_EnergyCMS : public Six_Particle_Observable_Base {
0129 //     void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &, 
0130 //                   const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0131 //                   double=1.,int=1); 
0132 //   public:
0133 //     Six_Particle_EnergyCMS(const std::vector<ATOOLS::Flavour>&,
0134 //                              int,double,double,int,
0135 //                              const std::string& listname);//=std::string("NRAngle:"));
0136 //     Primitive_Observable_Base* Copy() const;
0137 //   };
0138 
0139 }
0140 
0141 #endif