File indexing completed on 2025-04-19 09:09:41
0001 #ifndef Analysis_Observables_Jet_Cone_Distribution_H
0002 #define Analysis_Observables_Jet_Cone_Distribution_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 #include "AddOns/Analysis/Triggers/Primitive_Calorimeter.H"
0006 #include "AddOns/Analysis/Triggers/Calorimeter_Cone.H"
0007 #include "ATOOLS/Math/Histogram.H"
0008
0009 namespace ANALYSIS {
0010 class Primitive_Analysis;
0011
0012 class Jet_Cone_Distribution : public Primitive_Observable_Base {
0013 double m_Etcut;
0014 double m_etamin, m_etamax;
0015 std::vector<Calorimeter_Cone *> m_cones;
0016 std::vector<ATOOLS::Histogram *> m_histos;
0017
0018 void Fill(double weight=1.,double ncount=1);
0019 public:
0020 Jet_Cone_Distribution(const int linlog, const double Etcut,
0021 const double etamin, const double etamax,
0022 const double Rmin, const double Rmax, const int bins,
0023 Primitive_Analysis * const ana=0);
0024 ~Jet_Cone_Distribution();
0025 Primitive_Observable_Base * Copy() const ;
0026 void Reset();
0027 void Output(const std::string & pname);
0028 void EndEvaluation(double scale=1.0);
0029 void Restore(double scale=1.0);
0030
0031 void Evaluate(const ATOOLS::Particle_List &,double=1., double=1.0);
0032 void Evaluate(const ATOOLS::Blob_List & blobs,double value=1., double=1.0);
0033 };
0034
0035 inline void Jet_Cone_Distribution::Evaluate(const ATOOLS::Particle_List &,
0036 double weight, double ncount) { Fill(weight,ncount); }
0037 inline void Jet_Cone_Distribution::Evaluate(const ATOOLS::Blob_List &,
0038 double weight, double ncount) { Fill(weight,ncount); }
0039
0040
0041
0042
0043
0044
0045
0046 class Jet_Cone_Dependence : public Primitive_Observable_Base {
0047 double m_Etcut;
0048 double m_etamin, m_etamax;
0049 int m_njetmin,m_njetmax;
0050 std::vector<Calorimeter_Cone *> m_cones;
0051 std::vector<ATOOLS::Histogram *> m_histos;
0052
0053 void Fill(double weight=1.,double ncount=1);
0054 public:
0055 Jet_Cone_Dependence(const int linlog, const double Etcut,
0056 const double etamin, const double etamax,
0057 const double Rmin, const double Rmax,
0058 const int njetmin, const int njetmax,
0059 const int bins,
0060 Primitive_Analysis * const);
0061 ~Jet_Cone_Dependence();
0062 Primitive_Observable_Base * Copy() const ;
0063 void Reset();
0064 void Output(const std::string & pname);
0065 void EndEvaluation(double scale=1.0);
0066 void Restore(double scale=1.0);
0067
0068 void Evaluate(const ATOOLS::Particle_List &,double=1., double=1.0);
0069 void Evaluate(const ATOOLS::Blob_List & blobs,double value=1., double=1.0);
0070 };
0071
0072 inline void Jet_Cone_Dependence::Evaluate(const ATOOLS::Particle_List &,
0073 double weight, double ncount) { Fill(weight,ncount); }
0074 inline void Jet_Cone_Dependence::Evaluate(const ATOOLS::Blob_List &,
0075 double weight, double ncount) { Fill(weight,ncount); }
0076
0077
0078
0079
0080
0081
0082
0083
0084 class Jet_Cone_Shape : public Primitive_Observable_Base {
0085 double m_Etcut, m_R;
0086 double m_etamin, m_etamax;
0087 int m_jetmin, m_jetmax;
0088 Calorimeter_Cone * p_cone;
0089 std::vector<ATOOLS::Histogram *> m_histos;
0090 void Fill(int jetno,double weight=1.,double ncount=1);
0091 void Fill(double weight=1.,double ncount=1);
0092 public:
0093 Jet_Cone_Shape(const int type,const double Etcut, const double radius,
0094 const double etamin, const double etamax,
0095 const double Rmin, const double Rmax,
0096 const int nbins, const int jetmin, const int jetmax,
0097 Primitive_Analysis *);
0098 ~Jet_Cone_Shape();
0099 Primitive_Observable_Base * Copy() const ;
0100 void Reset();
0101 void Output(const std::string & pname);
0102 void EndEvaluation(double scale=1.0);
0103 void Restore(double scale=1.0);
0104
0105 void Evaluate(const ATOOLS::Particle_List &,double=1., double=1.0);
0106 void Evaluate(const ATOOLS::Blob_List & blobs,double value=1., double=1.0);
0107 };
0108 inline void Jet_Cone_Shape::Evaluate(const ATOOLS::Particle_List &,
0109 double weight, double ncount) { Fill(weight,ncount); }
0110 inline void Jet_Cone_Shape::Evaluate(const ATOOLS::Blob_List &,
0111 double weight, double ncount) { Fill(weight,ncount); }
0112 }
0113
0114 #endif