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

EMTF BIG emulator update - attempt #1 #527

Conversation

abrinke1
Copy link

@abrinke1 abrinke1 commented May 11, 2017

Full update of EMTF code, including:

  • Bit-wise emulation of 2016 firmware (CSC-only)
  • Incorporation of RPCs into emulator track-building, unpacking, and DQM

Crucial missing piece:

Items to be added:

  • 2017 pT assignment with RPC hits
  • Additional DQM plots, quality tests

Major directories affected
DataFormats/L1TMuon/

  • Significant changes to internal EMTF data formats
    EventFilter/L1TRawToDigi/
  • Unpack input link error flags and RPC hits
    L1Trigger/L1TMuonEndCap/
  • Complete replacement of emulator code
    L1Trigger/L1TMuon
  • Significant changes to GeometryTranslator.h, MuonTriggerPrimitive.h, and MuonTriggerPrimitiveFwd.h
  • Also, moved them out of deprecate/ folder

Unusual or unexpected file changes
DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc
EventFilter/L1TRawToDigi/interface/Block.h

  • Appear to contain recent commits from @thomreis that got lost in the L1T Offline migration from l1t-integration-CMSSW_9_0_0 to l1t-integration-CMSSW_9_1_0_pre3

Geometry/GEMGeometry/test/ME0GeometryAnalyzer.cc
Geometry/GEMGeometryBuilder/
Geometry/MuonCommonData/
Geometry/MuonNumbering/src/ME0NumberingScheme.cc

  • Files related to GEM detectors. I think these changes are from @jiafulow , but GEM/Phase II experts will have to take a look to see which version is correct

Lastly, @rekovic , I still can't see our DQM developer Preston Epps (ICleanPools [2]) anywhere - for example, I can't add him to the Reviewers of this PR. Do you know why this is?
[2] https://github.com/ICleanPools

mariadalfonso and others added 30 commits March 9, 2017 01:17
…configForTiltedTracker

pr90x Configure TTStubAlgorithm from L1TrackTrigger sequence for TiltedTracker
update 2017 wf in IB: replace TenMuE with ZMM
Cleaning pixel certification to prevent crash at Tier0 [90X]
…CMSSW_9_0_0_pre4

Reject 0 pt Puppi candidates in jet-track association
Convert Validation/RecoTau modules from legacy to global producers
Resolve segfault in MuonGEMHitsHarvestor::dqmEndJob
…for-9_0

Ignoring calibration channels in the dataframes
Various fixes: conddb core, conddb tools, runinfo o2o
@thomreis
Copy link

@abrinke1 there are still a lot of other commits in the PR.

@abrinke1
Copy link
Author

@thomreis I'm aware of this: the changes were initially made on top of the l1t-integration-CMSSW_9_0_0 branch, and I spent the last day rebasing onto l1t-integration-CMSSW_9_1_0_pre3. You can see that there are ~300 files changed, of which > 250 are in the L1Trigger/L1TMuonEndCap/ area. These do not need to be tracked, since it's a total replacement. All the other changed files have been noted explicitly in my comments above.

@thomreis
Copy link

The DQM/L1TMonitor/src/L1TMP7ZeroSupp.cc and EventFilter/L1TRawToDigi/interface/Block.h src/Block.cc changes seem to have been lost in the transition to the 9_1_0_pre3 integration branch indeed. However, the corresponding PR cms-sw#17956 is now merged in the official CMSSW 91x.

@rekovic
Copy link

rekovic commented May 16, 2017

This is a huge number of files!

@abrinke1
Copy link
Author

Yep - hence the ALL CAPS :)

Copy link

@thomreis thomreis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few additional comments:

  • I think the emulator should be in the l1t namespace.
  • header files have the .hh ending compared to .h for most other packages. Is there a rule for this?
  • How does the changed unpacker handle data from 2016? Does this work?
  • I did not go through the new unpacker code in detail since I'm not familiar with the EMTF algorithm.

'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml',
'Geometry/CSCGeometryBuilder/data/cscSpecs.xml',
'Geometry/RPCGeometryBuilder/data/PhaseII/RPCSpecs.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decrease in version number?

int is_CSC ; // 0 or 1.
int is_RPC ; // 0 or 1.
int is_GEM ; // 0 or 1.
int subsystem ; // 1 or ?. 1 for CSC, 2 for RPC, 3 for GEM

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple of question marks remain to be resolved.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These comments are for documentation, I need to check them manually to be sure before removing question marks. Prefer to keep them as is for now, as a "to do" reminder.

phi_fp(-99), theta_fp(-99), phzvl(-99), ph_hit(-99), zone_hit(-99), zone_code(-99),
fs_segment(-99), fs_zone_code(-99), bt_station(-99), bt_segment(-99),
phi_loc(-99), phi_glob(-99), theta(-99), eta(-99),
phi_sim(-99), theta_sim(-99), eta_sim(-99),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

phi_glob(-99) and phi_sim(-99) are allowed values.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixing.

rank(-99), winner(-99), charge(-99), bx(-99), first_bx(-99), second_bx(-99),
pt(-99), pt_XML(-99), zone(-99), ph_num(-99), ph_q(-99),
theta_fp(-99), theta(-99), eta(-99), phi_fp(-99), phi_loc(-99), phi_glob(-99),
gmt_pt(-99), gmt_phi(-99), gmt_eta(-99), gmt_quality(-99), gmt_charge(-99), gmt_charge_valid(-99),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

phi_glob(-99) is an allowed value. Check also gmt_phi(-99) and gmt_eta(-99)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixing.


CSCDetId EMTFHit::CreateCSCDetId() const {
return CSCDetId( (endcap == 1) ? 1 : 2, station, // For now, leave "layer" unfilled, defaults to 0.
(ring == 4) ? 1 : ring, chamber ); // Not sure if this is correct, or what "layer" does. - AWB 27.04.16

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it correct?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixing

'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decreasing version number?

'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decreasing version number?

'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decreasing version number?

'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decreasing version number?

'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml',
'Geometry/GEMGeometryBuilder/data/GEMSpecsFilter.xml',
'Geometry/GEMGeometryBuilder/data/v5/GEMSpecs.xml',

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decreasing version number?

@fwyzard
Copy link

fwyzard commented May 18, 2017

header files have the .hh ending compared to .h for most other packages. Is there a rule for this?

CMSSW coding rules use .h for header files: https://cms-cpt-software.web.cern.ch/cms-cpt-software/General/CodingAndStyleRules.pdf , § 2.1

@thomreis
Copy link

@fwyzard interesting document. I did not know it existed. It could be advertised more for people making PRs :-)

@thomreis
Copy link

I get the exception:

----- Begin Fatal Exception 19-May-2017 15:14:46 CEST-----------------------
An exception of category 'FileInPathError' occurred while
   [0] Processing  Event run: 1 lumi: 53153 event: 10630401 stream: 0
   [1] Running path 'L1TReEmulPath'
   [2] Calling method for module L1TMuonEndCapTrackProducer/'simEmtfDigis'
   [3] Using EventSetup component L1TMuonEndCapForestESProducer/'emtfForests' to make data L1TMuonEndCapForest/'' in record L1TMuonEndCapForestRcd
Exception Message:
edm::FileInPath unable to find file L1Trigger/L1TMuonEndCap/data/emtf_luts/v_16_02_21/ModeVariables/trees/3/0.xml anywhere in the search path.
The search path is defined by: CMSSW_SEARCH_PATH
${CMSSW_SEARCH_PATH} is: /afs/cern.ch/work/t/treis/ugmt/tests/new_emtf/CMSSW_9_1_0_pre3/src:/afs/cern.ch/work/t/treis/ugmt/tests/new_emtf/CMSSW_9_1_0_pre3/external/slc6_amd64_gcc530/data:/cvmfs/cms.cern.ch/slc6_amd64_gcc530/cms/cmssw/CMSSW_9_1_0_pre3/src:/cvmfs/cms.cern.ch/slc6_amd64_gcc530/cms/cmssw/CMSSW_9_1_0_pre3/external/slc6_amd64_gcc530/data
Current directory is: /afs/cern.ch/work/t/treis/ugmt/tests/new_emtf/CMSSW_9_1_0_pre3/src
----- End Fatal Exception -------------------------------------------------

@abrinke1 you mentioned that you removed the directory. But there is also a emtf_luts directory in L1Trigger/L1TMuon/data that appears to contain the missing file. How are the two related?

@abrinke1
Copy link
Author

Hi all,

Thanks for all the helpful comments. I haven't responded so far because I was working on getting the EMTF pT assignment with RPCs included, since this is what will be running at P5 when the collisions arrive. You can see the preliminary version in my latest commits (with a fair number of debugging output, and some temporary hacks). I'll be working with @kkotov on Monday to get things all ship-shape with O2O and versioning, and I'll try to address the comments above as well.

Best regards,
Andrew

@dildick
Copy link

dildick commented May 21, 2017

@abrinke1 please do not modify the GEM geometries in this pull request. This is taken care of by @bsunanda.

@abrinke1
Copy link
Author

Hi all,

I've just pushed a working version of the 2017 pT assignment with RPCs, with bit-wise internal debugging on 10k events. The performance looks pretty good. Took me (and Khristian) a bit longer than I expected, so the code cleaning will have to wait for tomorrow.

Best,
Andrew

@abrinke1
Copy link
Author

THIS PR IS READY TO BE TESTED!

@thomreis is there any chance you can try running again, either on a T&P data sample or some MC, and cross-check that the efficiency is OK?

@rekovic @bortigno @kkotov @jiafulow please take a look

p.s. Just remembered that I didn't address the ".hh" vs. ".h" comment - can deal with this before pulling into CMSSW.

@thomreis
Copy link

@abrinke1 I will look at #542 instead.

@thomreis
Copy link

Superseded by #542

@thomreis thomreis closed this Jun 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet