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
0013
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