ATLAS Offline Software
Loading...
Searching...
No Matches
SimpleHypoJetVectorGenerator Class Reference

#include <SimpleHypoJetVectorGenerator.h>

Inheritance diagram for SimpleHypoJetVectorGenerator:
Collaboration diagram for SimpleHypoJetVectorGenerator:

Public Member Functions

 SimpleHypoJetVectorGenerator (const std::string &type, const std::string &name, const IInterface *parent)
 ~SimpleHypoJetVectorGenerator ()
virtual StatusCode initialize () override
virtual HypoJetVector get () override
virtual std::string toString () const override

Private Attributes

Gaudi::Property< std::vector< double > > m_es {this, "ets", {}, "jet E values"}
Gaudi::Property< std::vector< double > > m_etas {this, "etas", {}, "jet eta values"}
Gaudi::Property< int > m_nbkgd {this, "n_bkgd", 0, "No of background jets to generate "}
Gaudi::Property< double > m_bkgd_etmax {this, "bkgd_etmax", 0., "Max Et background jets"}
Gaudi::Property< double > m_bkgd_etamax {this, "bkgd_etamax", 5., "Lower limit Eta range background "}
Gaudi::Property< bool > m_useEtaEtNotEtaE {this, "useEtaEtNotEtaE", true, "e values or et values "}
std::default_random_engine m_shuffle_re

Detailed Description

Definition at line 13 of file SimpleHypoJetVectorGenerator.h.

Constructor & Destructor Documentation

◆ SimpleHypoJetVectorGenerator()

SimpleHypoJetVectorGenerator::SimpleHypoJetVectorGenerator ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 17 of file SimpleHypoJetVectorGenerator.cxx.

19 :
20 base_class(type, name, parent){
21
22}

◆ ~SimpleHypoJetVectorGenerator()

SimpleHypoJetVectorGenerator::~SimpleHypoJetVectorGenerator ( )
inline

Definition at line 22 of file SimpleHypoJetVectorGenerator.h.

22{}

Member Function Documentation

◆ get()

HypoJetVector SimpleHypoJetVectorGenerator::get ( )
overridevirtual

Definition at line 51 of file SimpleHypoJetVectorGenerator.cxx.

51 {
52
53 auto factory = std::unique_ptr<ITLorentzVectorFactory>(nullptr);
55 factory.reset(new TLorentzVectorFactory());
56 } else {
57 factory.reset(new TLorentzVectorFactoryEtaE());
58 }
59
61
62 for(std::size_t i = 0; i < m_es.size(); ++i){
63 const auto& eta = m_etas[i];
64 const auto& et = m_es[i];
65 auto tlv = factory->make(eta, et);
66 result.push_back(std::shared_ptr<const HypoJet::IJet>(new TLorentzVectorAsIJet(tlv)));
67 }
68
69 if(m_nbkgd){
70 std::default_random_engine generator;
71 std::uniform_real_distribution<double> eta_distribution(-m_bkgd_etamax,
73
74 std::uniform_real_distribution<double> en_distribution(5.,
76
77
78
79 for(int i = 0; i < m_nbkgd; ++i){
80 const auto& eta = eta_distribution(generator);
81 const auto& en = en_distribution(generator);
82 // depending on the factory, en is e or et
83 auto tlv = factory->make(eta, en);
84 result.push_back(std::shared_ptr<const HypoJet::IJet>(new TLorentzVectorAsIJet(tlv)));
85 }
86 }
87
88 std::shuffle(result.begin(), result.end(), m_shuffle_re);
89 return result;
90}
Scalar eta() const
pseudorapidity method
std::vector< pHypoJet > HypoJetVector
Definition HypoJetDefs.h:27
float et(const xAOD::jFexSRJetRoI *j)
Gaudi::Property< std::vector< double > > m_es
Gaudi::Property< std::vector< double > > m_etas
std::default_random_engine m_shuffle_re
generator
Configure Herwig7 These are the commands corresponding to what would go into the regular Herwig infil...
void shuffle(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, UniformRandom &g)
Specialization of shuffle for DataVector/List.

◆ initialize()

StatusCode SimpleHypoJetVectorGenerator::initialize ( )
overridevirtual

Definition at line 26 of file SimpleHypoJetVectorGenerator.cxx.

26 {
27 if(m_es.size() != m_etas.size()){
28 ATH_MSG_ERROR("Config error: no of Et values != no of Eta values"
29 << m_es.size() << " " << m_etas.size());
30 return StatusCode::FAILURE;
31 }
32
33 return StatusCode::SUCCESS;
34
35}
#define ATH_MSG_ERROR(x)

◆ toString()

std::string SimpleHypoJetVectorGenerator::toString ( ) const
overridevirtual

Definition at line 37 of file SimpleHypoJetVectorGenerator.cxx.

37 {
38 std::stringstream ss;
39 ss << name() <<":: e: ";
40 for(const auto& e : m_es){ss << e << ", ";}
41 ss << " eta: ";
42 for(const auto& e : m_etas){ss << e << ", ";}
43 ss<<" bkgd: "<< m_nbkgd << " max E" << m_bkgd_etmax << " max abs eta: "
44 << m_bkgd_etamax << '\n';
45
46 return ss.str();
47}
static Double_t ss

Member Data Documentation

◆ m_bkgd_etamax

Gaudi::Property<double> SimpleHypoJetVectorGenerator::m_bkgd_etamax {this, "bkgd_etamax", 5., "Lower limit Eta range background "}
private

Definition at line 45 of file SimpleHypoJetVectorGenerator.h.

45{this, "bkgd_etamax", 5., "Lower limit Eta range background "};

◆ m_bkgd_etmax

Gaudi::Property<double> SimpleHypoJetVectorGenerator::m_bkgd_etmax {this, "bkgd_etmax", 0., "Max Et background jets"}
private

Definition at line 42 of file SimpleHypoJetVectorGenerator.h.

42{this, "bkgd_etmax", 0., "Max Et background jets"};

◆ m_es

Gaudi::Property<std::vector<double> > SimpleHypoJetVectorGenerator::m_es {this, "ets", {}, "jet E values"}
private

Definition at line 31 of file SimpleHypoJetVectorGenerator.h.

31{this, "ets", {}, "jet E values"};

◆ m_etas

Gaudi::Property<std::vector<double> > SimpleHypoJetVectorGenerator::m_etas {this, "etas", {}, "jet eta values"}
private

Definition at line 34 of file SimpleHypoJetVectorGenerator.h.

34{this, "etas", {}, "jet eta values"};

◆ m_nbkgd

Gaudi::Property<int> SimpleHypoJetVectorGenerator::m_nbkgd {this, "n_bkgd", 0, "No of background jets to generate "}
private

Definition at line 39 of file SimpleHypoJetVectorGenerator.h.

39{this, "n_bkgd", 0, "No of background jets to generate "};

◆ m_shuffle_re

std::default_random_engine SimpleHypoJetVectorGenerator::m_shuffle_re
private

Definition at line 51 of file SimpleHypoJetVectorGenerator.h.

◆ m_useEtaEtNotEtaE

Gaudi::Property<bool> SimpleHypoJetVectorGenerator::m_useEtaEtNotEtaE {this, "useEtaEtNotEtaE", true, "e values or et values "}
private

Definition at line 48 of file SimpleHypoJetVectorGenerator.h.

48{this, "useEtaEtNotEtaE", true, "e values or et values "};

The documentation for this class was generated from the following files: