5#ifndef TRIGGEPPERF_WTACONEJETMAKER_H
6#define TRIGGEPPERF_WTACONEJETMAKER_H
31 WTAConeJetMaker(
unsigned int block_n = 4,
unsigned int rolloff_buffersize = 155) :
37 virtual std::string
toString()
const override{
return "WTAConeJet"; }
38 virtual std::vector<Gep::Jet>
makeJets(
const std::vector<Gep::Cluster>& TopoTowers)
const override;
42 switch(seed_cleaning_algo)
45 return std::make_unique<WTAConeMaker>();
47 return std::make_unique<WTACone2PassMaker>();
57 #ifdef FLOATING_POINT_SIMULATION
65 const double pt_scaled = topotower.
vec.Pt() / LSB;
66 const double m_scaled = topotower.
vec.M() / LSB;
67 const double eta_scaled = (topotower.
vec.Eta() +
fl_ETA_MAX) / ETA_WIDTH;
68 const double phi_scaled = (topotower.
vec.Phi() +
fl_PHI_MAX) / PHI_WIDTH;
71 pt_t i_pt (
static_cast<int>(pt_scaled));
72 m_t i_m (
static_cast<int>(m_scaled));
73 eta_t i_eta(
static_cast<int>(eta_scaled));
74 phi_t i_phi(
static_cast<int>(phi_scaled));
77 return WTATrigObj(i_pt, i_eta, i_phi, i_m, idx);
82 #ifdef BITWISE_SIMULATION
83 const double f_pt =
static_cast<double>(iJet.
pt().raw()) * LSB;
84 const double f_m =
static_cast<double>(iJet.
m().raw()) * LSB;
85 const double f_eta =
static_cast<double>(iJet.
eta().raw()) * ETA_WIDTH -
fl_ETA_MAX;
86 const double f_phi =
static_cast<double>(iJet.
phi().raw()) * PHI_WIDTH -
fl_PHI_MAX;
87 #elif defined(INTEGER_SIMULATION)
88 const double f_pt =
static_cast<double>(iJet.
pt()) * LSB;
89 const double f_m =
static_cast<double>(iJet.
m()) * LSB;
90 const double f_eta =
static_cast<double>(iJet.
eta()) * ETA_WIDTH -
fl_ETA_MAX;
91 const double f_phi =
static_cast<double>(iJet.
phi()) * PHI_WIDTH -
fl_PHI_MAX;
96 fJet.
vec.SetPtEtaPhiM(f_pt, f_eta, f_phi, f_m);
100 #ifdef BITWISE_SIMULATION
106 #elif defined(INTEGER_SIMULATION)
virtual std::string toString() const override
virtual std::vector< Gep::Jet > makeJets(const std::vector< Gep::Cluster > &TopoTowers) const override
unsigned int m_SeedCleaningAlgo
WTAParameters m_GEPWTAParameters
WTATrigObj fTower_to_iTower(const Gep::Cluster &topotower, int idx=-99) const
Gep::Jet iJet_to_fJet(const WTAJet &iJet) const
unsigned int m_RollOffBufferSize
void SetRollOffBufferSize(int rolloff_buffersize)
void SetBlockN(unsigned int block_n)
void SetSeedCleaningAlgo(unsigned int algo)
WTAConeJetMaker(unsigned int block_n=4, unsigned int rolloff_buffersize=155)
std::unique_ptr< WTAConeMaker > CreateWTAConeMaker(enum WTAConeMakerEnum seed_cleaning_algo) const
int GetRollOffBufferSize()
const WTA4JetERingInfo & GetERingInfo() const