Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef Analysis_Observables_Jet_Observables_H
0002 #define Analysis_Observables_Jet_Observables_H
0003 
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 
0006 namespace ANALYSIS {
0007 
0008 
0009 
0010 
0011   /*
0012     mode: 1) min   m_minn jets, fill 1 (leading) to m_maxn jet 
0013           2) exact m_minn jets, fill 1 (leading) to m_maxn jet
0014   */
0015 
0016   class Jet_Observable_Base : public Primitive_Observable_Base {
0017   protected:
0018     unsigned int  m_mode;
0019     unsigned int  m_minn, m_maxn;
0020     std::vector<ATOOLS::Histogram*>  m_histos;
0021   public:
0022 
0023     Jet_Observable_Base(unsigned int type,double xmin,double xmax,int nbins,
0024             unsigned int mode, unsigned int minn, unsigned int maxn, 
0025             const std::string & listname=std::string("Jets"));
0026     virtual ~Jet_Observable_Base();
0027 
0028     void Evaluate(const ATOOLS::Particle_List & pl,double weight, double ncount);
0029     void Evaluate(const ATOOLS::Blob_List & blobs,double weight, double ncount);
0030     void EvaluateNLOcontrib(double weight, double ncount);
0031     void EvaluateNLOevt();
0032 
0033     void EndEvaluation(double scale=1.0);
0034     void Restore(double scale=1.0);
0035     virtual void Output(const std::string & pname);
0036 
0037     Primitive_Observable_Base & operator+=(const Primitive_Observable_Base & ob);
0038     void Reset();
0039 
0040     virtual double Calc(const ATOOLS::Particle * p) =0;
0041   };
0042 
0043   class Two_Jet_Observable_Base : public Primitive_Observable_Base {
0044   protected:
0045     unsigned int  m_mode;
0046     unsigned int  m_minn, m_maxn;
0047     double        * p_minpts, * p_maxpts;
0048     std::vector<ATOOLS::Histogram*>  m_histos;
0049   public:
0050     Two_Jet_Observable_Base(unsigned int type,double xmin,double xmax,int nbins,
0051                 unsigned int mode, unsigned int minn, unsigned int maxn, 
0052                 const std::string & =std::string("Jets"));
0053     ~Two_Jet_Observable_Base();
0054 
0055     void Evaluate(const ATOOLS::Particle_List &,double, double);
0056     void Evaluate(const ATOOLS::Blob_List & blobs,double value, double);
0057     void EvaluateNLOcontrib(double weight, double ncount);
0058     void EvaluateNLOevt();
0059     
0060     void EndEvaluation(double scale=1.0);
0061     void Restore(double scale=1.0);
0062     virtual void Output(const std::string & pname);
0063 
0064     Primitive_Observable_Base & operator+=(const Primitive_Observable_Base &);
0065     void Reset();
0066 
0067     virtual double Calc(const ATOOLS::Particle *,const ATOOLS::Particle *,const int,const int) = 0;
0068     virtual void   SetPTRange(const unsigned int jetno,const double minpt,const double maxpt=1.e12);
0069   };
0070 
0071   class Three_Jet_Observable_Base : public Primitive_Observable_Base {
0072   protected:
0073     unsigned int  m_mode;
0074     unsigned int  m_minn, m_maxn;
0075     std::vector<ATOOLS::Histogram*>  m_histos;
0076   public:
0077     Three_Jet_Observable_Base(unsigned int type,double xmin,double xmax,int nbins,
0078                 unsigned int mode, unsigned int minn, unsigned int maxn, 
0079                 const std::string & =std::string("Jets"));
0080     ~Three_Jet_Observable_Base();
0081 
0082     void Evaluate(const ATOOLS::Particle_List &,double, double);
0083     void Evaluate(const ATOOLS::Blob_List & blobs,double value, double);
0084     
0085     void EndEvaluation(double scale=1.0);
0086     void Restore(double scale=1.0);
0087     virtual void Output(const std::string & pname);
0088 
0089     Primitive_Observable_Base & operator+=(const Primitive_Observable_Base &);
0090     void Reset();
0091 
0092     virtual double Calc(const ATOOLS::Particle *,const ATOOLS::Particle *,const ATOOLS::Particle *,
0093             const int,const int,const int) = 0;
0094   };
0095 
0096   class Jet_Eta_Distribution : public Jet_Observable_Base {
0097 
0098   public:
0099     Jet_Eta_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0100              unsigned int mode,unsigned int minn,unsigned int maxn, 
0101              const std::string & =std::string("Jets"));
0102 
0103     double Calc(const ATOOLS::Particle * p);
0104     Primitive_Observable_Base * Copy() const ;
0105   };
0106 
0107   class Jet_Phi_Distribution : public Jet_Observable_Base {
0108     
0109   public:
0110     Jet_Phi_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0111              unsigned int mode,unsigned int minn,unsigned int maxn, 
0112              const std::string & =std::string("Jets"));
0113     
0114     double Calc(const ATOOLS::Particle * p);
0115     Primitive_Observable_Base * Copy() const ;
0116   };
0117 
0118   class Jet_Rapidity_Distribution : public Jet_Observable_Base {
0119 
0120   public:
0121     Jet_Rapidity_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0122              unsigned int mode,unsigned int minn,unsigned int maxn, 
0123              const std::string & =std::string("Jets"));
0124 
0125     double Calc(const ATOOLS::Particle * p);
0126     Primitive_Observable_Base * Copy() const ;
0127   };
0128 
0129   class Jet_PT_Distribution : public Jet_Observable_Base {
0130 
0131   public:
0132     Jet_PT_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0133             unsigned int mode,unsigned int minn,unsigned int maxn, 
0134             const std::string & =std::string("Jets"));
0135     double Calc(const ATOOLS::Particle * p);
0136     Primitive_Observable_Base * Copy() const ;
0137   };
0138 
0139   class Jet_IPT2_Distribution : public Jet_Observable_Base {
0140 
0141   public:
0142     Jet_IPT2_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0143               unsigned int mode,unsigned int minn,unsigned int maxn, 
0144               const std::string & =std::string("Jets"));
0145     double Calc(const ATOOLS::Particle * p);
0146     Primitive_Observable_Base * Copy() const ;
0147   };
0148 
0149   class Jet_ET_Distribution : public Jet_Observable_Base {
0150 
0151   public:
0152     Jet_ET_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0153             unsigned int mode,unsigned int minn,unsigned int maxn, 
0154             const std::string & =std::string("Jets"));
0155     double Calc(const ATOOLS::Particle * p);
0156     Primitive_Observable_Base * Copy() const ;
0157   };
0158 
0159   class Jet_E_Distribution : public Jet_Observable_Base {
0160 
0161   public:
0162     Jet_E_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0163             unsigned int mode,unsigned int minn,unsigned int maxn, 
0164             const std::string & =std::string("Jets"));
0165     double Calc(const ATOOLS::Particle * p);
0166     Primitive_Observable_Base * Copy() const ;
0167   };
0168 
0169   class Jet_Differential_Rates : public Jet_Observable_Base {
0170     std::string m_reflistname;
0171   public:
0172     Jet_Differential_Rates(unsigned int type,double xmin,double xmax,int nbins,
0173                unsigned int mode, unsigned int minn,unsigned int maxn, 
0174                const std::string & =std::string("FinalState"),
0175                const std::string & =std::string(""));
0176     double Calc(const ATOOLS::Particle * p);
0177     void Evaluate(const ATOOLS::Blob_List & blobs,double weight, double ncount);
0178     void EvaluateNLOcontrib(double weight, double ncount);
0179 
0180     Primitive_Observable_Base * Copy() const ;
0181   };
0182 
0183   //////////////////////////////////////////////////////////////////////
0184 
0185 
0186 
0187   class Jet_DeltaR_Distribution : public Two_Jet_Observable_Base {
0188   protected:
0189   public:
0190     Jet_DeltaR_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0191                 unsigned int mode, unsigned int minn, unsigned int maxn, 
0192                 const std::string & =std::string("Jets"));
0193 
0194     Primitive_Observable_Base * Copy() const;
0195     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0196         const int jet1,const int jet2);
0197   };
0198 
0199   class Jet_DeltaEta_Distribution : public Two_Jet_Observable_Base {
0200   protected:
0201   public:
0202     Jet_DeltaEta_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0203                   unsigned int mode, unsigned int minn, unsigned int maxn, 
0204                   const std::string & =std::string("Jets"));
0205     
0206     Primitive_Observable_Base * Copy() const;
0207     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0208         const int jet1,const int jet2);
0209   };
0210 
0211   class Jet_DeltaY_Distribution : public Two_Jet_Observable_Base {
0212   protected:
0213   public:
0214     Jet_DeltaY_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0215                 unsigned int mode, unsigned int minn, unsigned int maxn, 
0216                 const std::string & =std::string("Jets"));
0217     
0218     Primitive_Observable_Base * Copy() const;
0219     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0220         const int jet1,const int jet2);
0221   };
0222 
0223   class Jet_DeltaPhi_Distribution : public Two_Jet_Observable_Base {
0224   protected:
0225   public:
0226     Jet_DeltaPhi_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0227                   unsigned int mode, unsigned int minn, unsigned int maxn, 
0228                   const std::string & =std::string("Jets"));
0229     
0230     Primitive_Observable_Base * Copy() const;
0231     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0232         const int jet1,const int jet2);
0233   };
0234 
0235   class Jet_DiMass_Distribution : public Two_Jet_Observable_Base {
0236   protected:
0237   public:
0238     Jet_DiMass_Distribution(unsigned int type,double xmin,double xmax,int nbins,
0239                 unsigned int mode, unsigned int minn, unsigned int maxn, 
0240                 const std::string & =std::string("Jets"));
0241     
0242     Primitive_Observable_Base * Copy() const;
0243     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0244         const int jet1,const int jet2);
0245   };
0246 
0247   class Eta_3_Prime : public Three_Jet_Observable_Base {
0248   public:
0249     Eta_3_Prime(unsigned int type,double xmin,double xmax,int nbins,
0250         unsigned int mode, unsigned int minn, unsigned int maxn, 
0251         const std::string & =std::string("Jets"));
0252 
0253     Primitive_Observable_Base * Copy() const;
0254     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,const ATOOLS::Particle * p3,
0255         const int jet1,const int jet2,const int jet3);
0256   };
0257 
0258   class Y_3_Prime : public Three_Jet_Observable_Base {
0259   public:
0260     Y_3_Prime(unsigned int type,double xmin,double xmax,int nbins,
0261         unsigned int mode, unsigned int minn, unsigned int maxn, 
0262         const std::string & =std::string("Jets"));
0263 
0264     Primitive_Observable_Base * Copy() const;
0265     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,const ATOOLS::Particle * p3,
0266         const int jet1,const int jet2,const int jet3);
0267   };
0268 
0269   class Phi_3_Prime : public Three_Jet_Observable_Base {
0270   public:
0271     Phi_3_Prime(unsigned int type,double xmin,double xmax,int nbins,
0272         unsigned int mode, unsigned int minn, unsigned int maxn, 
0273         const std::string & =std::string("Jets"));
0274 
0275     Primitive_Observable_Base * Copy() const;
0276     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,const ATOOLS::Particle * p3,
0277         const int jet1,const int jet2,const int jet3);
0278   };
0279 
0280   class CosPhi_3_Prime : public Three_Jet_Observable_Base {
0281   public:
0282     CosPhi_3_Prime(unsigned int type,double xmin,double xmax,int nbins,
0283         unsigned int mode, unsigned int minn, unsigned int maxn, 
0284         const std::string & =std::string("Jets"));
0285 
0286     Primitive_Observable_Base * Copy() const;
0287     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,const ATOOLS::Particle * p3,
0288         const int jet1,const int jet2,const int jet3);
0289   };
0290 
0291   class Jet_Alpha_Distribution : public Two_Jet_Observable_Base {
0292   protected:
0293   public:
0294     Jet_Alpha_Distribution(unsigned int type,double xmin,double 
0295                xmax,int nbins,
0296                            unsigned int mode,unsigned int minn,unsigned 
0297                int maxn,
0298                            const std::string & =std::string("Jets"));
0299     
0300     Primitive_Observable_Base * Copy() const;
0301     double Calc(const ATOOLS::Particle * p1,const ATOOLS::Particle * p2,
0302                 const int jet1,const int jet2);
0303   };
0304 }
0305 #endif