#include "AddOns/Analysis/Observables/Jet_Cone_Distribution.H" #include "ATOOLS/Org/MyStrStream.H" #include "ATOOLS/Org/Shell_Tools.H" #include "AddOns/Analysis/Triggers/Final_Selector.H" #include "AddOns/Analysis/Main/Primitive_Analysis.H" using namespace ANALYSIS; using namespace ATOOLS; DECLARE_GETTER(Jet_Cone_Distribution,"JetConeDist", Primitive_Observable_Base,Analysis_Key); Primitive_Observable_Base * ATOOLS::Getter::operator()(const Analysis_Key& key) const { ATOOLS::Scoped_Settings s{ key.m_settings }; const auto etcut = s["ETCut"].SetDefault(0.0).Get(); const auto etamin = s["EtaMin"].SetDefault(-10.0).Get(); const auto etamax = s["EtaMax"].SetDefault( 10.0).Get(); const auto rmin = s["RMin"].SetDefault(0.0).Get(); const auto rmax = s["RMax"].SetDefault(10.0).Get(); const auto bins = s["Bins"].SetDefault(100).Get(); const auto scale = s["Scale"].SetDefault("Lin").Get(); return new Jet_Cone_Distribution(HistogramType(scale),etcut,etamin,etamax,rmin,rmax,bins,key.p_analysis); } void ATOOLS::Getter::PrintInfo(std::ostream &str,const size_t width) const { str<<"e.g. {ETCut: 0, EtaMin: -10, EtaMax: 10, RMin: 0, RMax: 10, Bins: 100, Scale: Lin}"; } Jet_Cone_Distribution::Jet_Cone_Distribution(const int linlog, const double Etcut, const double etamin, const double etamax, const double Rmin, const double Rmax, const int nbins, Primitive_Analysis * const ana) : Primitive_Observable_Base(linlog,Rmin,Rmax,nbins), m_Etcut(Etcut),m_etamin(etamin),m_etamax(etamax) { p_ana = ana; std::string etname; MyStrStream s1; s1<>etname; m_name = std::string("ConeNumb_")+etname; double dx = (m_xmax-m_xmin)/double(m_nbins); for (int i=0;iSetAnalysis(p_ana); m_cones[i]->SetEtaRangeForJets(m_etamin,m_etamax,1); m_histos.push_back(new ATOOLS::Histogram(0,0.,10.,nbins)); } } Jet_Cone_Distribution::~Jet_Cone_Distribution() { int size = m_cones.size(); for (int i=0;iMPISync(); m_histos[i]->Finalize(); if (scale!=1.) m_histos[i]->Scale(scale); m_histos[i]->Output(); } } void Jet_Cone_Distribution::Restore(double scale) { for (size_t i=0; iScale(scale); m_histos[i]->Restore(); } } void Jet_Cone_Distribution::Reset() { p_histo->Reset(); for (size_t i=0; iReset(); } } void Jet_Cone_Distribution::Output(const std::string & pname) { for (size_t i=0; iRadius(); s<<".dat"; s>>fname; m_histos[i]->Output((pname+std::string("/")+m_name+std::string("_")+fname).c_str()); } p_histo->Output((pname+std::string("/")+m_name+std::string(".dat")).c_str()); } void Jet_Cone_Distribution::Fill(double weight, double ncount) { int NofJets; for (unsigned int i=0;iConstructJets(); NofJets = m_cones[i]->NumberOfJets(); m_histos[i]->Insert(NofJets,weight,ncount); //insert zero in others } } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DECLARE_GETTER(Jet_Cone_Dependence,"JetConeDep", Primitive_Observable_Base,Analysis_Key); Primitive_Observable_Base * ATOOLS::Getter::operator()(const Analysis_Key& key) const { ATOOLS::Scoped_Settings s{ key.m_settings }; const auto etcut = s["ETCut"].SetDefault(0.0).Get(); const auto etamin = s["EtaMin"].SetDefault(-10.0).Get(); const auto etamax = s["EtaMax"].SetDefault( 10.0).Get(); const auto rmin = s["RMin"].SetDefault(0.0).Get(); const auto rmax = s["RMax"].SetDefault(10.0).Get(); const auto nmin = s["NMin"].SetDefault(1).Get(); const auto nmax = s["NMax"].SetDefault(10).Get(); const auto bins = s["Bins"].SetDefault(100).Get(); const auto scale = s["Scale"].SetDefault("Lin").Get(); return new Jet_Cone_Dependence(HistogramType(scale),etcut,etamin,etamax,rmin,rmax, nmin,nmax,bins,key.p_analysis); } void ATOOLS::Getter::PrintInfo(std::ostream &str,const size_t width) const { str<<"e.g. {ETCut: 0, EtaMin: -10, EtaMax: 10, RMin: 0, RMax: 10, NMin: 1, NMax: 10, Bins: 100, Scale: Lin}"; } Jet_Cone_Dependence::Jet_Cone_Dependence(const int linlog, const double Etcut, const double etamin, const double etamax, const double Rmin, const double Rmax, const int njetmin, const int njetmax, const int nbins, Primitive_Analysis * const ana) : Primitive_Observable_Base(linlog,Rmin,Rmax,nbins), m_Etcut(Etcut), m_etamin(etamin), m_etamax(etamax), m_njetmin(njetmin), m_njetmax(njetmax) { p_ana=ana; std::string etname; MyStrStream s1; s1<>etname; m_name = std::string("ConeDep_")+etname; double dx = (m_xmax-m_xmin)/double(m_nbins); for (int i=0;iSetAnalysis(p_ana); m_cones[i]->SetEtaRangeForJets(m_etamin,m_etamax,1); } for (int i=0;iMPISync(); m_histos[i]->Finalize(); if (scale!=1.) m_histos[i]->Scale(scale); m_histos[i]->Output(); } } void Jet_Cone_Dependence::Restore(double scale) { for (size_t i=0; iScale(scale); m_histos[i]->Restore(); } } void Jet_Cone_Dependence::Reset() { p_histo->Reset(); for (size_t i=0; iReset(); } } void Jet_Cone_Dependence::Output(const std::string & pname) { for (size_t i=0; i>fname; m_histos[i]->Output((pname+std::string("/")+m_name+std::string("_")+fname).c_str()); } p_histo->Output((pname+std::string("/")+m_name+std::string(".dat")).c_str()); } void Jet_Cone_Dependence::Fill(double weight, double ncount) { int NofJets; for (unsigned int i=0;iConstructJets(); NofJets = m_cones[i]->NumberOfJets(); if (NofJetsInsert(m_cones[i]->Radius(),weight,ncount); for (size_t j=1; jInsert(0.,0.,ncount); } } else { for (size_t j=1; jInsert(0.,0.,ncount); } } } } //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DECLARE_GETTER(Jet_Cone_Shape,"JetConeShape", Primitive_Observable_Base,Analysis_Key); Primitive_Observable_Base * ATOOLS::Getter::operator()(const Analysis_Key& key) const { ATOOLS::Scoped_Settings s{ key.m_settings }; const auto etcut = s["ETCut"].SetDefault(0.0).Get(); const auto radius = s["Radius"].SetDefault(0.7).Get(); const auto etamin = s["EtaMin"].SetDefault(-10.0).Get(); const auto etamax = s["EtaMax"].SetDefault( 10.0).Get(); const auto rmin = s["RMin"].SetDefault(0.0).Get(); const auto rmax = s["RMax"].SetDefault(10.0).Get(); const auto nmin = s["NMin"].SetDefault(1).Get(); const auto nmax = s["NMax"].SetDefault(10).Get(); const auto bins = s["Bins"].SetDefault(100).Get(); const auto scale = s["Scale"].SetDefault("Lin").Get(); return new Jet_Cone_Shape(HistogramType(scale),etcut,radius,etamin,etamax,rmin,rmax,nmin,nmax,bins,key.p_analysis); } void ATOOLS::Getter::PrintInfo(std::ostream &str,const size_t width) const { str<<"e.g. {ETCut: 0, Radius: 0.7, EtaMin: -10, EtaMax: 10, RMin: 0, RMax: 10, NMin: 1, NMax: 10, Bins: 100, Scale: Lin}"; } Jet_Cone_Shape::Jet_Cone_Shape(const int linlog,const double Etcut, const double radius, const double etamin, const double etamax, const double Rmin, const double Rmax, const int jetmin, const int jetmax, const int nbins, Primitive_Analysis * const ana) : Primitive_Observable_Base(linlog,Rmin,Rmax,nbins), m_Etcut(Etcut), m_R(radius), m_etamin(etamin), m_etamax(etamax), m_jetmin(jetmin), m_jetmax(jetmax) { p_ana=ana; std::string etname; MyStrStream s1; s1<>etname; std::string rname; MyStrStream s2; s2<>rname; m_name = std::string("ConeShape_")+etname+std::string("_")+rname; p_cone = new Calorimeter_Cone(Etcut,m_etamin,m_etamax,m_R); p_cone->SetAnalysis(p_ana); p_cone->SetEtaRangeForJets(m_etamin,m_etamax,1); for (int i=jetmin;iReset(); for (size_t i=0; iReset(); } } void Jet_Cone_Shape::Output(const std::string & pname) { for (size_t i=0; i>fname; m_histos[i]->Output((pname+std::string("/")+m_name+ std::string("_")+fname).c_str()); } p_histo->Output((pname+std::string("/")+m_name+std::string(".dat")).c_str()); } void Jet_Cone_Shape::EndEvaluation(double scale) { for (size_t i=0; iMPISync(); m_histos[i]->Finalize(); if (scale!=1.) m_histos[i]->Scale(scale); m_histos[i]->Output(); } } void Jet_Cone_Shape::Restore(double scale) { for (size_t i=0; iScale(scale); m_histos[i]->Restore(); } } void Jet_Cone_Shape::Fill(double weight,double ncount) { p_cone->ConstructJets(); for (unsigned int i=0; iFillShape(jetno+m_jetmin,m_histos[jetno],weight,ncount); }