@@ -100,36 +100,40 @@ namespace l1ct {
100100
101101 PFTkEGAlgoEmuConfig (const edm::ParameterSet &iConfig);
102102 PFTkEGAlgoEmuConfig (
103- unsigned int nTrack,
104- unsigned int nTrack_in,
105- unsigned int nEmCalo_in,
106- unsigned int nEmOut,
107- bool filterHwQuality,
108- bool doBremRecovery,
109- bool writeBeforeBremRecovery = false ,
110- int caloHwQual = 4 ,
111- bool doEndcapHwQual = false ,
112- float emClusterPtMin = 2 .,
113- float dEtaMaxBrem = 0.02 ,
114- float dPhiMaxBrem = 0.1 ,
115- const std::vector<double > &absEtaBoundaries = {0.0 , 1.5 },
116- const std::vector<double > &dEtaValues = {0.015 , 0.01 },
117- const std::vector<double > &dPhiValues = {0.07 , 0.07 },
118- float trkQualityPtMin = 10 .,
119- unsigned int algo = 0 ,
120- unsigned int nCompCandPerCluster = 4 ,
121- bool writeEgSta = false ,
103+ unsigned int nTrack, // Number of tracks to consider
104+ unsigned int nTrack_in, // Number of tracks for EG input
105+ unsigned int nEmCalo_in, // Number of EM calos for EG input
106+ unsigned int nEmOut, // Number of EM objects at EG output
107+ bool filterHwQuality, // Enable hardware quality filtering
108+ bool doBremRecovery, // Enable brem recovery
109+ bool writeBeforeBremRecovery = false , // Write objects before brem recovery
110+ int caloHwQual = 4 , // Calo hardware quality threshold (default: 4)
111+ bool doEndcapHwQual = false , // Use endcap hardware quality
112+ float emClusterPtMin = 2 ., // Minimum EM cluster pt [GeV]
113+ float dEtaMaxBrem = 0.02 , // Max delta-eta for brem recovery
114+ float dPhiMaxBrem = 0.1 , // Max delta-phi for brem recovery
115+ const std::vector<double > &absEtaBoundaries = {0.0 , 1.5 }, // Eta region boundaries
116+ const std::vector<double > &dEtaValues = {0.015 , 0.01 }, // Delta-eta cuts per region
117+ const std::vector<double > &dPhiValues = {0.07 , 0.07 }, // Delta-phi cuts per region
118+ float trkQualityPtMin = 10 ., // Minimum track pt for quality [GeV]
119+ unsigned int algo = 0 , // Algorithm selector (see enum Algo)
120+ unsigned int nCompCandPerCluster = 4 , // Max composite candidates per cluster
121+ bool writeEgSta = false , // Write EG standalone objects
122+ // Track isolation params for tkEle: min-pt, dZ, dRMin, dRMax
122123 const IsoParameters &tkIsoParams_tkEle = {2 ., 0.6 , 0.03 , 0.2 },
124+ // Track isolation params for tkEm: min-pt, dZ, dRMin, dRMax
123125 const IsoParameters &tkIsoParams_tkEm = {2 ., 0.6 , 0.07 , 0.3 },
126+ // PF isolation params for tkEle: min-pt, dZ, dRMin, dRMax
124127 const IsoParameters &pfIsoParams_tkEle = {1 ., 0.6 , 0.03 , 0.2 },
128+ // PF isolation params for tkEm: min-pt, dZ, dRMin, dRMax
125129 const IsoParameters &pfIsoParams_tkEm = {1 ., 0.6 , 0.07 , 0.3 },
126- bool doTkIso = true ,
127- bool doPfIso = false ,
128- EGIsoEleObjEmu::IsoType hwIsoTypeTkEle = EGIsoEleObjEmu::IsoType::TkIso,
129- EGIsoObjEmu::IsoType hwIsoTypeTkEm = EGIsoObjEmu::IsoType::TkIsoPV,
130+ bool doTkIso = true , // Enable track isolation
131+ bool doPfIso = false , // Enable PF isolation
132+ EGIsoEleObjEmu::IsoType hwIsoTypeTkEle = EGIsoEleObjEmu::IsoType::TkIso, // Isolation type for tkEle
133+ EGIsoObjEmu::IsoType hwIsoTypeTkEm = EGIsoObjEmu::IsoType::TkIsoPV, // Isolation type for tkEm
134+ // Composite ID params: pt-bins, loose-WP, pt-bins tight-WP, model, dPhi_max, dEta_max
130135 const CompIDParameters &compIDparams = {{0 .}, {-4 }, {0 .}, {0.214844 }, " compositeID.json" , 0.2 , 0.2 },
131- int debug = 0 )
132-
136+ int debug = 0 ) // Debug level
133137 : nTRACK(nTrack),
134138 nTRACK_EGIN(nTrack_in),
135139 nEMCALO_EGIN(nEmCalo_in),
@@ -277,7 +281,7 @@ namespace l1ct {
277281 typedef ap_fixed<12 , 3 , AP_RND_CONV, AP_SAT> bdt_score_t ;
278282
279283 private:
280- conifer::BDT<bdt_feature_t , bdt_score_t , false > * model_;
284+ std::unique_ptr< conifer::BDT<bdt_feature_t , bdt_score_t , false >> model_;
281285 };
282286
283287 class TkEgCID_EE_v1 : public TkEGEleAssociationModel {
@@ -293,7 +297,7 @@ namespace l1ct {
293297 typedef ap_fixed<30 , 20 , AP_RND_CONV, AP_SAT> bdt_score_t ;
294298
295299 private:
296- conifer::BDT<bdt_feature_t , bdt_score_t , false > * model_;
300+ std::unique_ptr< conifer::BDT<bdt_feature_t , bdt_score_t , false >> model_;
297301 };
298302
299303 class TkEgCID_EB_v0 : public TkEGEleAssociationModel {
@@ -309,7 +313,7 @@ namespace l1ct {
309313 typedef ap_fixed<12 , 4 , AP_RND_CONV, AP_SAT> bdt_score_t ;
310314
311315 private:
312- conifer::BDT<bdt_feature_t , bdt_score_t , false > * model_;
316+ std::unique_ptr< conifer::BDT<bdt_feature_t , bdt_score_t , false >> model_;
313317 };
314318
315319 class TkEgCID_EB_v1 : public TkEGEleAssociationModel {
@@ -329,7 +333,7 @@ namespace l1ct {
329333 return inf + (x - min_x) / pow (2 , bitshift);
330334 }
331335
332- conifer::BDT<bdt_feature_t , bdt_score_t , false > * model_;
336+ std::unique_ptr< conifer::BDT<bdt_feature_t , bdt_score_t , false >> model_;
333337 };
334338
335339 class PFTkEGAlgoEmulator {
0 commit comments