102 const std::vector<glbeta_t> &absEtaBins,
103 const std::vector<double> &ptSlopeNe,
104 const std::vector<double> &ptSlopePh,
105 const std::vector<double> &ptZeroNe,
106 const std::vector<double> &ptZeroPh,
107 const std::vector<double> &alphaSlope,
108 const std::vector<double> &alphaZero,
110 const std::vector<double> &priorNe,
111 const std::vector<double> &priorPh,
112 const std::vector<pt_t> &
ptCut,
144 const std::vector<PFChargedObjEmu> &pfch ,
145 std::vector<PuppiObjEmu> &outallch )
const;
148 const std::vector<PVObjEmu> &
pv ,
149 const std::vector<PFChargedObjEmu> &pfch ,
150 std::vector<PuppiObjEmu> &outallch )
const;
154 const std::vector<TkObjEmu> &
track ,
155 const std::vector<PVObjEmu> &
pv ,
156 const std::vector<PFNeutralObjEmu> &pfallne ,
157 std::vector<PuppiObjEmu> &outallne_nocut ,
158 std::vector<PuppiObjEmu> &outallne ,
159 std::vector<PuppiObjEmu> &outselne )
const;
161 const std::vector<TkObjEmu> &
track ,
162 const std::vector<PVObjEmu> &
pv ,
163 const std::vector<PFNeutralObjEmu> &pfallne ,
164 std::vector<PuppiObjEmu> &outallne_nocut ,
165 std::vector<PuppiObjEmu> &outallne ,
166 std::vector<PuppiObjEmu> &outselne )
const;
168 const std::vector<TkObjEmu> &
track ,
169 const std::vector<PVObjEmu> &
pv ,
170 const std::vector<PFNeutralObjEmu> &pfallne ,
171 std::vector<PuppiObjEmu> &outselne )
const {
172 std::vector<PuppiObjEmu> outallne_nocut, outallne;
178 const std::vector<HadCaloObjEmu> &caloin ,
179 std::vector<PuppiObjEmu> &outallne_nocut ,
180 std::vector<PuppiObjEmu> &outallne ,
181 std::vector<PuppiObjEmu> &outselne )
const;
183 const std::vector<HadCaloObjEmu> &caloin ,
184 std::vector<PuppiObjEmu> &outallne_nocut ,
185 std::vector<PuppiObjEmu> &outallne ,
186 std::vector<PuppiObjEmu> &outselne )
const;
189 const std::vector<PuppiObjEmu> &
in,
190 std::vector<PuppiObjEmu> &
out,
218 std::pair<float, float>
sum2puppiPt_flt(
float sum,
float pt,
unsigned int ieta,
bool isEM,
int icand)
const;
std::vector< pt_t > ptCut_
void run(const PFInputRegion &in, const std::vector< l1ct::PVObjEmu > &pvs, OutputRegion &out) const
void linpuppi_chs_ref(const PFRegionEmu ®ion, const PVObjEmu &pv, const std::vector< PFChargedObjEmu > &pfch, std::vector< PuppiObjEmu > &outallch) const
void linpuppi_flt(const PFRegionEmu ®ion, const std::vector< TkObjEmu > &track, const std::vector< PVObjEmu > &pv, const std::vector< PFNeutralObjEmu > &pfallne, std::vector< PuppiObjEmu > &outallne_nocut, std::vector< PuppiObjEmu > &outallne, std::vector< PuppiObjEmu > &outselne) const
std::vector< glbeta_t > absEtaBins_
std::vector< double > ptZeroNe_
std::vector< double > priorNe_
LinPuppiEmulator(unsigned int nTrack, unsigned int nIn, unsigned int nOut, unsigned int nVtx, unsigned int dR2Min, unsigned int dR2Max, unsigned int iptMax, unsigned int dzCut, const std::vector< glbeta_t > &absEtaBins, const std::vector< double > &ptSlopeNe, const std::vector< double > &ptSlopePh, const std::vector< double > &ptZeroNe, const std::vector< double > &ptZeroPh, const std::vector< double > &alphaSlope, const std::vector< double > &alphaZero, const std::vector< double > &alphaCrop, const std::vector< double > &priorNe, const std::vector< double > &priorPh, const std::vector< pt_t > &ptCut, unsigned int nFinalSort, SortAlgo finalSortAlgo)
std::vector< double > priorPh_
std::vector< double > ptZeroPh_
void linpuppi_ref(const PFRegionEmu ®ion, const std::vector< TkObjEmu > &track, const std::vector< PVObjEmu > &pv, const std::vector< PFNeutralObjEmu > &pfallne, std::vector< PuppiObjEmu > &outselne) const
std::vector< double > alphaZero_
static void puppisort_and_crop_ref(unsigned int nOutMax, const std::vector< PuppiObjEmu > &in, std::vector< PuppiObjEmu > &out, SortAlgo algo=SortAlgo::Insertion)
unsigned int find_ieta(const PFRegionEmu ®ion, eta_t eta) const
std::vector< double > ptSlopePh_
std::vector< double > ptSlopeNe_
void setDebug(bool debug=true)
void linpuppi_ref(const PFRegionEmu ®ion, const std::vector< TkObjEmu > &track, const std::vector< PVObjEmu > &pv, const std::vector< PFNeutralObjEmu > &pfallne, std::vector< PuppiObjEmu > &outallne_nocut, std::vector< PuppiObjEmu > &outallne, std::vector< PuppiObjEmu > &outselne) const
void setFakePuppi(bool fakePuppi=true)
void fwdlinpuppi_ref(const PFRegionEmu ®ion, const std::vector< HadCaloObjEmu > &caloin, std::vector< PuppiObjEmu > &outallne_nocut, std::vector< PuppiObjEmu > &outallne, std::vector< PuppiObjEmu > &outselne) const
ap_ufixed< 14, 12, AP_TRN, AP_SAT > pt_t
unsigned long long uint64_t
std::vector< double > alphaSlope_
std::pair< float, float > sum2puppiPt_flt(float sum, float pt, unsigned int ieta, bool isEM, int icand) const
LinPuppiEmulator(unsigned int nTrack, unsigned int nIn, unsigned int nOut, unsigned int nVtx, unsigned int dR2Min, unsigned int dR2Max, unsigned int iptMax, unsigned int dzCut, double ptSlopeNe, double ptSlopePh, double ptZeroNe, double ptZeroPh, double alphaSlope, double alphaZero, double alphaCrop, double priorNe, double priorPh, pt_t ptCut, unsigned int nFinalSort=0, SortAlgo finalSortAlgo=SortAlgo::Insertion)
std::vector< double > alphaCrop_
std::pair< pt_t, puppiWgt_t > sum2puppiPt_ref(uint64_t sum, pt_t pt, unsigned int ieta, bool isEM, int icand) const
void fwdlinpuppi_flt(const PFRegionEmu ®ion, const std::vector< HadCaloObjEmu > &caloin, std::vector< PuppiObjEmu > &outallne_nocut, std::vector< PuppiObjEmu > &outallne, std::vector< PuppiObjEmu > &outselne) const