Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: Integration branch for HGCal multiboard test and fixes for e/g brem recovery [DO NOT MERGE] #122

Open
wants to merge 49 commits into
base: L1PF_12_5_X
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
ed47ca6
L1T demonstrator tools: Add support for new EMP file format
tswilliams Oct 18, 2022
baefec5
Fix 'valid missing' bug in new EMP write function
tswilliams Nov 1, 2022
fbc0750
Demonstrator tools: Add ability to set board ID
tswilliams Nov 2, 2022
60ece04
Formatting update
tswilliams Apr 17, 2023
539c52b
Merged l1t-phase2-v57 from repository cms-l1t-offline with cms-merge-…
folguera Apr 19, 2023
fc72a1d
Low-pt muon fix
folguera Apr 19, 2023
674f689
Stage 2 clustering emulator
EmyrClement Nov 2, 2022
1e1d7df
Changes for interface test (squashed)
EmyrClement Feb 17, 2023
d39280c
switched to double to accomodate getparameter
folguera May 12, 2023
b6a2d43
make eta parameter configurable
folguera May 12, 2023
59b9d0f
Merge pull request #1109 from folguera/125Xp1_FlagToRestrictGMToutput…
epalencia May 31, 2023
d5b6578
Merge pull request #1129 from gpetruc/barrel_sorter_rebased_to_v1.16
epalencia May 31, 2023
b687ab0
Merge pull request #1107 from tswilliams/demonstrator-tools-new-emp-f…
epalencia Jun 1, 2023
bb7bb72
Remove commented out lines.
EmyrClement Jun 6, 2023
ee8faf0
Make values in edm object match HW values.
EmyrClement Jun 8, 2023
dae9610
Merge remote-tracking branch 'EmyrClement/S2Emu_InterfaceTest_l1t-pha…
gpetruc Jun 15, 2023
7b30319
Version for HGC Multiboard test
gpetruc Jun 1, 2023
15a1994
Configure even main make_l1ct_binaryFiles_cfg for HGC test (for CI)
gpetruc Jun 14, 2023
f5937ee
Merged for_HGCal_multiboard_125x from repository gpetruc with cms-mer…
cerminar Jun 15, 2023
ab90e30
Configure regionizer emulator for fwd hgcal region instead of ideal one
gpetruc Jun 16, 2023
256c33d
Write ID score to FW object and tune loose WP.
cerminar Jun 16, 2023
46fcbb2
Merge pull request #18 from cerminar/eg_hgc_multiboard_v0
gpetruc Jun 16, 2023
439de2b
Small bugfixes to unpacker and eg emulator
gpetruc Jun 19, 2023
6a45f5a
Fix emu-fw disagreement for sigma_roz
EmyrClement Jun 20, 2023
31086e0
Fix emu-fw disagreement for eta
EmyrClement Jun 20, 2023
9f487f1
Merge tag 'l1t-phase2-v67' into multiboard_correlator
gpetruc Jun 23, 2023
6edaed2
Configure regionizer emulator for fwd hgcal region instead of ideal one
gpetruc Jun 16, 2023
10fec7c
DemonstratorTools: support transparent compression of pattern files
gpetruc Jun 27, 2023
930c839
Add check on file extension (txt, txt.gz, txt.xz)
gpetruc Jun 29, 2023
a54edda
Merge remote-tracking branch 'my-cmssw/DemonstratorTools_compression_…
gpetruc Jul 1, 2023
c80bcf6
fillDescriptions for L1SeedConePFJetProducers & related config fixes
gpetruc Jul 3, 2023
8f664f8
Cleanup & improve pattern writer config
gpetruc Jul 3, 2023
2754962
make_l1ct_binaryFiles_cfg.py: option to use serenity settings for barrel
gpetruc Jul 5, 2023
4a416c0
Workaround for different LSB assumed in clustering and CP blocks.
EmyrClement Jul 13, 2023
aed96ba
Improve emulation of sigma r/z r/z
EmyrClement Jul 13, 2023
6078452
Remove one hard coded number.
EmyrClement Jul 13, 2023
3bccc17
Update pattern file writer/reader.
EmyrClement Jul 13, 2023
6cf1c33
Synchronise pattern file naming with CTL1.
EmyrClement Jul 13, 2023
e928ee6
Merge remote-tracking branch 'EmyrClement/S2Emu_InterfaceTest_l1t-pha…
gpetruc Jul 14, 2023
42b7197
Merge remote-tracking branch 'my-cmssw/multiboard_correlator' into fo…
gpetruc Jul 14, 2023
1f03468
Update L1THGCalUtilities Stage2FileWriter for updated DemonstratorTools
gpetruc Jul 14, 2023
4317ca6
Update make_l1ct_binaryFiles_HGCTest_cfg.py
gpetruc Jul 14, 2023
0792e2c
Checkpoint: fix phi andd sector assignment
gpetruc Jul 17, 2023
24fbf21
Further improvements to unpacker to try improve agreement
gpetruc Jul 18, 2023
7721c5a
fix ordering of puppi candidates in foward region
gpetruc Jul 19, 2023
9786e2b
Fix emulation of EMF, add emulation of firmware bug for sigma_rzrz.
EmyrClement Jul 19, 2023
812b9a4
Another fix for sigma_rzrz emulation.
EmyrClement Jul 19, 2023
c8a658f
Remove printout
EmyrClement Jul 19, 2023
7921f3f
Code-format
gpetruc Jul 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,6 @@ __init__.py
# ignore files under the top level $CMSSW_BASE/src directory, but not its subdirectories
/*
!/*/


L1Trigger/L1THGCalUtilities/test/HGCS2*.txt
1 change: 1 addition & 0 deletions DataFormats/L1THGCal/BuildFile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<use name="FWCore/MessageLogger"/>
<use name="rootrflx"/>
<use name="boost"/>
<use name="hls"/>
<export>
<lib name="1"/>
</export>
89 changes: 89 additions & 0 deletions DataFormats/L1THGCal/interface/HGCalClusterT.h
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,69 @@ namespace l1t {
void triggerCells67percent(float triggerCells67percent) { triggerCells67percent_ = triggerCells67percent; }
void triggerCells90percent(float triggerCells90percent) { triggerCells90percent_ = triggerCells90percent; }

// Firmware-specific cluster properties
unsigned long int hw_sigma_e_quotient() const { return hw_sigma_e_quotient_; }
unsigned long int hw_sigma_e_fraction() const { return hw_sigma_e_fraction_; }
unsigned long int hw_mean_z_quotient() const { return hw_mean_z_quotient_; }
unsigned long int hw_mean_z_fraction() const { return hw_mean_z_fraction_; }
unsigned long int hw_mean_phi_quotient() const { return hw_mean_phi_quotient_; }
unsigned long int hw_mean_phi_fraction() const { return hw_mean_phi_fraction_; }
unsigned long int hw_mean_eta_quotient() const { return hw_mean_eta_quotient_; }
unsigned long int hw_mean_eta_fraction() const { return hw_mean_eta_fraction_; }
unsigned long int hw_mean_roz_quotient() const { return hw_mean_roz_quotient_; }
unsigned long int hw_mean_roz_fraction() const { return hw_mean_roz_fraction_; }
unsigned long int hw_sigma_z_quotient() const { return hw_sigma_z_quotient_; }
unsigned long int hw_sigma_z_fraction() const { return hw_sigma_z_fraction_; }
unsigned long int hw_sigma_phi_quotient() const { return hw_sigma_phi_quotient_; }
unsigned long int hw_sigma_phi_fraction() const { return hw_sigma_phi_fraction_; }
unsigned long int hw_sigma_eta_quotient() const { return hw_sigma_eta_quotient_; }
unsigned long int hw_sigma_eta_fraction() const { return hw_sigma_eta_fraction_; }
unsigned long int hw_sigma_roz_quotient() const { return hw_sigma_roz_quotient_; }
unsigned long int hw_sigma_roz_fraction() const { return hw_sigma_roz_fraction_; }
unsigned long int hw_e_em_over_e_quotient() const { return hw_e_em_over_e_quotient_; }
unsigned long int hw_e_em_over_e_fraction() const { return hw_e_em_over_e_fraction_; }
unsigned long int hw_e_em_core_over_e_em_quotient() const { return hw_e_em_core_over_e_em_quotient_; }
unsigned long int hw_e_em_core_over_e_em_fraction() const { return hw_e_em_core_over_e_em_fraction_; }
unsigned long int hw_e_h_early_over_e_quotient() const { return hw_e_h_early_over_e_quotient_; }
unsigned long int hw_e_h_early_over_e_fraction() const { return hw_e_h_early_over_e_fraction_; }

void hw_sigma_e_quotient(unsigned long int sigma_e_quotient) { hw_sigma_e_quotient_ = sigma_e_quotient; }
void hw_sigma_e_fraction(unsigned long int sigma_e_fraction) { hw_sigma_e_fraction_ = sigma_e_fraction; }
void hw_mean_z_quotient(unsigned long int mean_z_quotient) { hw_mean_z_quotient_ = mean_z_quotient; }
void hw_mean_z_fraction(unsigned long int mean_z_fraction) { hw_mean_z_fraction_ = mean_z_fraction; }
void hw_mean_phi_quotient(unsigned long int mean_phi_quotient) { hw_mean_phi_quotient_ = mean_phi_quotient; }
void hw_mean_phi_fraction(unsigned long int mean_phi_fraction) { hw_mean_phi_fraction_ = mean_phi_fraction; }
void hw_mean_eta_quotient(unsigned long int mean_eta_quotient) { hw_mean_eta_quotient_ = mean_eta_quotient; }
void hw_mean_eta_fraction(unsigned long int mean_eta_fraction) { hw_mean_eta_fraction_ = mean_eta_fraction; }
void hw_mean_roz_quotient(unsigned long int mean_roz_quotient) { hw_mean_roz_quotient_ = mean_roz_quotient; }
void hw_mean_roz_fraction(unsigned long int mean_roz_fraction) { hw_mean_roz_fraction_ = mean_roz_fraction; }
void hw_sigma_z_quotient(unsigned long int sigma_z_quotient) { hw_sigma_z_quotient_ = sigma_z_quotient; }
void hw_sigma_z_fraction(unsigned long int sigma_z_fraction) { hw_sigma_z_fraction_ = sigma_z_fraction; }
void hw_sigma_phi_quotient(unsigned long int sigma_phi_quotient) { hw_sigma_phi_quotient_ = sigma_phi_quotient; }
void hw_sigma_phi_fraction(unsigned long int sigma_phi_fraction) { hw_sigma_phi_fraction_ = sigma_phi_fraction; }
void hw_sigma_eta_quotient(unsigned long int sigma_eta_quotient) { hw_sigma_eta_quotient_ = sigma_eta_quotient; }
void hw_sigma_eta_fraction(unsigned long int sigma_eta_fraction) { hw_sigma_eta_fraction_ = sigma_eta_fraction; }
void hw_sigma_roz_quotient(unsigned long int sigma_roz_quotient) { hw_sigma_roz_quotient_ = sigma_roz_quotient; }
void hw_sigma_roz_fraction(unsigned long int sigma_roz_fraction) { hw_sigma_roz_fraction_ = sigma_roz_fraction; }
void hw_e_em_over_e_quotient(unsigned long int e_em_over_e_quotient) {
hw_e_em_over_e_quotient_ = e_em_over_e_quotient;
}
void hw_e_em_over_e_fraction(unsigned long int e_em_over_e_fraction) {
hw_e_em_over_e_fraction_ = e_em_over_e_fraction;
}
void hw_e_em_core_over_e_em_quotient(unsigned long int e_em_core_over_e_em_quotient) {
hw_e_em_core_over_e_em_quotient_ = e_em_core_over_e_em_quotient;
}
void hw_e_em_core_over_e_em_fraction(unsigned long int e_em_core_over_e_em_fraction) {
hw_e_em_core_over_e_em_fraction_ = e_em_core_over_e_em_fraction;
}
void hw_e_h_early_over_e_quotient(unsigned long int e_h_early_over_e_quotient) {
hw_e_h_early_over_e_quotient_ = e_h_early_over_e_quotient;
}
void hw_e_h_early_over_e_fraction(unsigned long int e_h_early_over_e_fraction) {
hw_e_h_early_over_e_fraction_ = e_h_early_over_e_fraction;
}

/* operators */
bool operator<(const HGCalClusterT<C>& cl) const { return mipPt() < cl.mipPt(); }
bool operator>(const HGCalClusterT<C>& cl) const { return cl < *this; }
Expand Down Expand Up @@ -221,6 +284,32 @@ namespace l1t {
float triggerCells67percent_ = 0.;
float triggerCells90percent_ = 0.;

// firmware-specific cluster properties
unsigned long int hw_sigma_e_quotient_ = 0;
unsigned long int hw_sigma_e_fraction_ = 0;
unsigned long int hw_mean_z_quotient_ = 0;
unsigned long int hw_mean_z_fraction_ = 0;
unsigned long int hw_mean_phi_quotient_ = 0;
unsigned long int hw_mean_phi_fraction_ = 0;
unsigned long int hw_mean_eta_quotient_ = 0;
unsigned long int hw_mean_eta_fraction_ = 0;
unsigned long int hw_mean_roz_quotient_ = 0;
unsigned long int hw_mean_roz_fraction_ = 0;
unsigned long int hw_sigma_z_quotient_ = 0;
unsigned long int hw_sigma_z_fraction_ = 0;
unsigned long int hw_sigma_phi_quotient_ = 0;
unsigned long int hw_sigma_phi_fraction_ = 0;
unsigned long int hw_sigma_eta_quotient_ = 0;
unsigned long int hw_sigma_eta_fraction_ = 0;
unsigned long int hw_sigma_roz_quotient_ = 0;
unsigned long int hw_sigma_roz_fraction_ = 0;
unsigned long int hw_e_em_over_e_quotient_ = 0;
unsigned long int hw_e_em_over_e_fraction_ = 0;
unsigned long int hw_e_em_core_over_e_em_quotient_ = 0;
unsigned long int hw_e_em_core_over_e_em_fraction_ = 0;
unsigned long int hw_e_h_early_over_e_quotient_ = 0;
unsigned long int hw_e_h_early_over_e_fraction_ = 0;

void updateP4AndPosition(const edm::Ptr<C>& c, bool updateCentre = true, float fraction = 1.) {
double cMipt = c->mipPt() * fraction;
double cPt = c->pt() * fraction;
Expand Down
Loading