cms-l1t-offline / cmssw

CMS Offline Software
cms-sw.github.io/cmssw
Apache License 2.0
17 stars 27 forks source link

L1T Private Integration Branch based on CMSSW_8_0_7 #291

Open mulhearn opened 8 years ago

mulhearn commented 8 years ago

The L1T private integration branch has been successfully merged onto CMSSW_8_0_7 plus pending L1T PRs cms-sw#14320, cms-sw#14285, and cms-sw#14323 (plus Vladimirs L1Repack update PR?).

Bitwise equivalence has been demonstrated with the deprecated CMSSW_8_0_2 integration branch at two points (l1t-integration-v46.0 = l1t-tsg-v6-cand):

Additional tags drop the CMSSW_8_0_7, because 802 integration branch is now deprecated:

L1T integration can now proceed on this branch:

https://github.com/cms-l1t-offline/cmssw/tree/l1t-integration-CMSSW_8_0_7

Please submit future PRs there.

Note 1: PRs containing changes to CondFormats/L1TObjects will no longer be directly merged into integration branch. Instead, you must now discuss such changes in advance and make a separate, CondFormats/L1TObjects PR that can go directly into CMSSW.

Note 2: Changes to DataFormats which change the class version will also require special steps.

The new recipe is (not yet tested from scratch):

cmsrel CMSSW_8_0_7
cd CMSSW_8_0_7/src
cmsenv
git cms-init
git remote add cms-l1t-offline git@github.com:cms-l1t-offline/cmssw.git
git fetch cms-l1t-offline
git cms-merge-topic --unsafe cms-l1t-offline:l1t-integration-v47.0
git cms-addpkg L1Trigger/L1TCommon
scram b -j 8

The change log (will be) is here:

https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideL1TOfflineDev#Development_Integration

to run the officially supported cmsDriver-based version of L1T Re-Emulation:

cmsDriver.py l1NtupleRECO -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW2015 --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleAODEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo --conditions=auto:run2_data -n 200 --data --no_exec --no_output --filein=/store/data/Run2015D/DoubleEG/RAW-RECO/ZElectron-PromptReco-v4/000/260/627/00000/12455212-1E85-E511-8913-02163E014472.root --geometry=Extended2016,Extended2016Reco --customise=L1Trigger/Configuration/customiseReEmul.L1TEventSetupForHF1x1TPs

and then:

cmsRun l1NtupleRECO_RAW2DIGI.py
root -q -b -x L1Trigger/L1TCommon/macros/rates.C
root -q -b -x L1Trigger/L1TCommon/macros/kin.C

An example re-Emulating from 2016 data:

cmsDriver.py l1Ntuple -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo --conditions=auto:run2_data -n 200 --data --no_exec --no_output --filein=/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root --geometry=Extended2016,Extended2016Reco --customise=L1Trigger/Configuration/customiseReEmul.L1TEventSetupForHF1x1TPs
thomreis commented 8 years ago

The inputs to simOmtfDigis, simTwinMuxDigis and simBmtfDigis now include the bmtfDigis collection instead of the previous dttfDigis. This does not work with 76x MC since the RAW data is not available. Should the dttfDigis still be used for those samples?

Furthermore, the cmsDriver command from the twiki (which still uses CMSSW_8_0_2) produces a configuration that, when run with the new recipe (l1t-integration-v47.0 tag), gives a fatal exception: cmsDriver.py l1NtupleMC -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo --conditions=80X_mcRun2_asymptotic_v6 -n 1000 --mc --no_exec --no_output --filein=/store/mc/RunIIFall15DR76/SingleNeutrino/GEN-SIM-RAW/25nsPUfixed30NzshcalRaw_76X_mcRun2_asymptotic_v12-v1/70000/FA15FAAB-F0C1-E511-9C41-C45444922D6C.root --geometry=Extended2016,Extended2016Reco

----- Begin Fatal Exception 04-May-2016 14:11:50 CEST----------------------- An exception of category 'NoRecord' occurred while [0] Processing run: 1 lumi: 258093 event: 51582941 [1] Running path 'L1TReEmulPath' [2] Calling event method for module L1TExtCondProducer/'simGtExtFakeStage2Digis' Exception Message: No "L1TUtmTriggerMenuRcd" record found in the EventSetup for synchronization value Run: 1 LuminosityBlock: 258093 Event: 0 Time: 512005000001 Please add an ESSource or ESProducer that delivers such a record. ----- End Fatal Exception -------------------------------------------------

What changes are needed to run on 76x MC?

rekovic commented 8 years ago

@thomreis You should be using the customisation flag for MC 2015 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulMCFromRAW2015

Twiki is updated to reflect migration to CMSSW_8_0_7. https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideL1TStage2Instructions#Environment_Setup_with_Integrati

thomreis commented 8 years ago

Thanks. This fixes the input collection but I still get the exception.

eparadas commented 8 years ago

Hi, it seems I am getting error because of a "missing" constructor:

/afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/src/implementations_stage2/BMTFTokens.cc: In constructor 'l1t::stage2::BMTFTokens::BMTFTokens(const edm::ParameterSet&, edm::ConsumesCollector&)': /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/src/implementations_stage2/BMTFTokens.cc:9:110: error: no matching function for call to 'l1t::PackerTokens::PackerTokens(const edm::ParameterSet&, edm::ConsumesCollector&)' BMTFTokens::BMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) : PackerTokens(cfg, cc) ^ In file included from /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/src/implementations_stage2/BMTFTokens.h:7:0, from /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/src/implementations_stage2/BMTFTokens.cc:5: /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate: constexpr l1t::PackerTokens::PackerTokens() class PackerTokens { ^ /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate expects 0 arguments, 2 provided /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate: constexpr l1t::PackerTokens::PackerTokens(const l1t::PackerTokens&) /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate expects 1 argument, 2 provided /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate: constexpr l1t::PackerTokens::PackerTokens(l1t::PackerTokens&&) /afs/cern.ch/work/e/eparadas/Unpacker/forGit/CMSSW_8_0_7/src/EventFilter/L1TRawToDigi/interface/PackerTokens.h:10:10: note: candidate expects 1 argument, 2 provided config/SCRAM/GMake/Makefile.rules:1917: recipe for target 'tmp/slc6_amd64_gcc530/src/EventFilter/L1TRawToDigi/src/EventFilterL1TRawToDigi/implementations_stage2/BMTFTokens.o' failed

Any suggestions?

rekovic commented 8 years ago

Thanks. This fixes the input collection but I still get the exception.

@thomreis You should be using the GlobalTag flag for MC as suggested in the twiki: --conditions=auto:run2_mc

Starting from a local release area from scratch, and following the recipe (with the correct GlobalTag flag) works just fine. Note that in the example below, a different input file is used (available on eos). I hope this helps.

scramv1 project -n CMSSW_8_0_7_l1t_test CMSSW CMSSW_8_0_7
cd CMSSW_8_0_7_l1t_test/src/
cmsenv
git cms-init 
git remote add cms-l1t-offline git@github.com:cms-l1t-offline/cmssw.git
git fetch cms-l1t-offline
git cms-merge-topic cms-l1t-offline:l1t-integration-v47.0
scramv b -j 8
cmsDriver.py l1NtupleMC -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulMCFromRAW2015 --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo --conditions=auto:run2_mc -n 1000 --mc --no_exec --no_output --filein=/store/mc/RunIIFall15DR76/SingleNeutrino/GEN-SIM-RAW/25nsFlat0to50NzshcalRaw_76X_mcRun2_asymptotic_v12-v1/00000/B4192ADA-A3A7-E511-B5EE-02163E011456.root --geometry=Extended2016,Extended2016Reco
cmsRun l1NtupleMC_RAW2DIGI.py
rekovic commented 8 years ago

@eparadas What is the exact (cmsDriver.py) command you are using?

mulhearn commented 8 years ago

@eparadas is that in the vanilla dev branch? Or after you merged your own branch? Because that looks like the result of a bad merge to me... the packer framework updates needed to accommodate GT/Calo/GMT packing included removing that (useless) constructor. So if its your own code, simply removing that call will likely work. But if its in dev 807 branch, I am confused.

mulhearn commented 8 years ago

In dev branch, this is correctly handled:

      BMTFTokens::BMTFTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc) 
      {

It looks to me like maybe you did a "lazy" conflict resolution (e.g. copying your version of file entirely) and so blew away this needed update. I have learned to check every conflicted file, using git's conflict resolution tools, and try to spot changes in HEAD that I want to keep. Copying directly from your version or using "git checkout --theirs" or even "git checkout --ours" is dangerous. You have to check! I still miss things, but a lot less now that I just hunker down and visually inspect every conflicted file...

thomreis commented 8 years ago

@rekovic it was the wrong global tag that I used. I took the newest one on the twiki, which happend to be 80X_mcRun2_asymptotic_v6. With auto:run2_mc it works. Thanks.

thomreis commented 8 years ago

@mulhearn could you make the 8_0_7 integration branch the default one shown on github instead of the 8_0_2 one please?

eparadas commented 8 years ago

@mulhearn @rekovic thanks, all solved. I will do the PR.

mulhearn commented 8 years ago

Added tags:

mulhearn commented 8 years ago

This branch is now deprecated, please use the new integration branch in 808, see issue #318.