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
ECAL for Time dependent MC. Premix option C. Handle for APD/PN tag for time dependence #28214
Merged
cmsbuild
merged 26 commits into
cms-sw:master
from
amassiro:amassiro_premix_OptionC_2tags_ECAL_11_0_X
Jan 13, 2020
Merged
Changes from 15 commits
Commits
Show all changes
26 commits
Select commit
Hold shift + click to select a range
0b3c752
commit without new class needed for apdpnMC
amassiro 9091ebc
commit without new class needed for apdpnMC
amassiro a871be0
fix white spaces
amassiro c031b54
Merge branch 'master' into amassiro_premix_OptionC_2tags_ECAL_11_0_X
amassiro a7ea04f
code format
amassiro 80b042e
Merge branch 'amassiro_premix_OptionC_2tags_ECAL_11_0_X' of github.co…
amassiro e0f9f5e
missing file
amassiro 56ee7eb
code check
amassiro 978ae06
just configuration cleaning, as per PR comment
amassiro 1835a55
fix of forgotten comment cout/edm logger
amassiro 5a1eca5
Addition of flag to trigger time dependent MC on demand
amassiro 22c10ca
from untracked to tracked and code-check
amassiro 3f00eb4
new workflow for 2018 and time dependent MC
amassiro 47062b0
suggestions during PR implemented. Mainly commented code removed, a s…
amassiro 658f29d
code format
amassiro c8ab979
double to float, as per PR suggestion
amassiro b68e88b
fix of usage of time and run number
amassiro 7d89f4d
code format
amassiro 609c424
new workflow for time dependent conditions, 250202.183
amassiro 2a9f99c
update according to discussion on the PR. Workflow 250202.184 has big…
amassiro 3b063f5
update according to discussion on the PR. Workflow 250202.184 has big…
amassiro 8600d68
change in naming conventions as suggested in PR
amassiro 6027981
fix run and ls
amassiro f1c74bc
fix for timeDependent flag setting to true
amassiro c420815
tiny fix for step3
amassiro e4810f5
remove of sim configuration in reco step
amassiro File filter
Filter by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
There are no files selected for viewing
23 changes: 23 additions & 0 deletions
23
CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbRecordMC.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// | ||
// Toyoko Orimoto (Caltech), 10 July 2007 | ||
// | ||
|
||
#ifndef ECALLASERCORRECTION_ECALLASERDBRECORDMC_H | ||
#define ECALLASERCORRECTION_ECALLASERDBRECORDMC_H | ||
|
||
#include "boost/mpl/vector.hpp" | ||
#include "FWCore/Framework/interface/DependentRecordImplementation.h" | ||
|
||
#include "CondFormats/DataRecord/interface/EcalLaserAlphasRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRefRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosMCRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLinearCorrectionsRcd.h" | ||
|
||
class EcalLaserDbRecordMC | ||
: public edm::eventsetup::DependentRecordImplementation<EcalLaserDbRecordMC, | ||
boost::mpl::vector<EcalLaserAlphasRcd, | ||
EcalLaserAPDPNRatiosRefRcd, | ||
EcalLaserAPDPNRatiosMCRcd, | ||
EcalLinearCorrectionsRcd> > {}; | ||
|
||
#endif /* ECALLASERCORRECTION_ECALLASERDBRECORDMC_H */ |
87 changes: 87 additions & 0 deletions
87
CalibCalorimetry/EcalLaserCorrection/plugins/EcalLaserCorrectionServiceMC.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
// | ||
// Toyoko Orimoto (Caltech), 10 July 2007 | ||
// Andrea Massironi, 3 Aug 2019 | ||
// | ||
|
||
// system include files | ||
#include <iostream> | ||
#include <fstream> | ||
#include <memory> | ||
|
||
#include "FWCore/Framework/interface/ModuleFactory.h" | ||
#include "FWCore/Framework/interface/ESProducer.h" | ||
#include "FWCore/Framework/interface/ESProductHost.h" | ||
#include "FWCore/Utilities/interface/ReusableObjectHolder.h" | ||
#include "FWCore/Framework/interface/ESHandle.h" | ||
|
||
#include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbService.h" | ||
#include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbRecordMC.h" | ||
|
||
#include "CondFormats/DataRecord/interface/EcalLaserAlphasRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRefRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosMCRcd.h" | ||
#include "CondFormats/DataRecord/interface/EcalLinearCorrectionsRcd.h" | ||
|
||
class EcalLaserCorrectionServiceMC : public edm::ESProducer { | ||
public: | ||
EcalLaserCorrectionServiceMC(const edm::ParameterSet&); | ||
~EcalLaserCorrectionServiceMC() override; | ||
|
||
std::shared_ptr<EcalLaserDbService> produce(const EcalLaserDbRecordMC&); | ||
|
||
private: | ||
using HostType = edm::ESProductHost<EcalLaserDbService, | ||
EcalLaserAlphasRcd, | ||
EcalLaserAPDPNRatiosRefRcd, | ||
EcalLaserAPDPNRatiosMCRcd, | ||
EcalLinearCorrectionsRcd>; | ||
|
||
// ----------member data --------------------------- | ||
edm::ReusableObjectHolder<HostType> holder_; | ||
|
||
edm::ESGetToken<EcalLaserAlphas, EcalLaserAlphasRcd> alphaToken_; | ||
edm::ESGetToken<EcalLaserAPDPNRatiosRef, EcalLaserAPDPNRatiosRefRcd> apdpnRefToken_; | ||
edm::ESGetToken<EcalLaserAPDPNRatios, EcalLaserAPDPNRatiosMCRcd> apdpnToken_; | ||
edm::ESGetToken<EcalLinearCorrections, EcalLinearCorrectionsRcd> linearToken_; | ||
}; | ||
|
||
EcalLaserCorrectionServiceMC::EcalLaserCorrectionServiceMC(const edm::ParameterSet& fConfig) : ESProducer() { | ||
// the following line is needed to tell the framework what | ||
// data is being produced | ||
// setWhatProduced (this, (dependsOn (&EcalLaserCorrectionServiceMC::apdpnCallback))); | ||
|
||
setWhatProduced(this) | ||
.setConsumes(alphaToken_) | ||
.setConsumes(apdpnRefToken_) | ||
.setConsumes(apdpnToken_) | ||
.setConsumes(linearToken_); | ||
|
||
//now do what ever other initialization is needed | ||
} | ||
|
||
EcalLaserCorrectionServiceMC::~EcalLaserCorrectionServiceMC() {} | ||
|
||
// | ||
// member functions | ||
// | ||
|
||
// ------------ method called to produce the data ------------ | ||
std::shared_ptr<EcalLaserDbService> EcalLaserCorrectionServiceMC::produce(const EcalLaserDbRecordMC& record) { | ||
auto host = holder_.makeOrGet([]() { return new HostType; }); | ||
|
||
host->ifRecordChanges<EcalLinearCorrectionsRcd>( | ||
record, [this, h = host.get()](auto const& rec) { h->setLinearCorrectionsData(&rec.get(linearToken_)); }); | ||
|
||
host->ifRecordChanges<EcalLaserAPDPNRatiosMCRcd>( | ||
record, [this, h = host.get()](auto const& rec) { h->setAPDPNData(&rec.get(apdpnToken_)); }); | ||
|
||
host->ifRecordChanges<EcalLaserAPDPNRatiosRefRcd>( | ||
record, [this, h = host.get()](auto const& rec) { h->setAPDPNRefData(&rec.get(apdpnRefToken_)); }); | ||
|
||
host->ifRecordChanges<EcalLaserAlphasRcd>( | ||
record, [this, h = host.get()](auto const& rec) { h->setAlphaData(&rec.get(alphaToken_)); }); | ||
|
||
return host; // automatically converts to std::shared_ptr<EcalLaserDbService> | ||
} | ||
|
||
DEFINE_FWK_EVENTSETUP_MODULE(EcalLaserCorrectionServiceMC); |
5 changes: 5 additions & 0 deletions
5
CalibCalorimetry/EcalLaserCorrection/src/EcalLaserDbRecordMC.cc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
|
||
#include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbRecordMC.h" | ||
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" | ||
|
||
EVENTSETUP_RECORD_REG(EcalLaserDbRecordMC); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
26 changes: 26 additions & 0 deletions
26
CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosMCRcd.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
#ifndef DataRecord_EcalLaserAPDPNRatiosMCRcd_h | ||
#define DataRecord_EcalLaserAPDPNRatiosMCRcd_h | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : EcalLaserAPDPNRatiosMCRcd | ||
// | ||
/**\class EcalLaserAPDPNRatiosMCRcd EcalLaserAPDPNRatiosMCRcd.h CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosMCRcd.h | ||
* | ||
* Description: <one line class summary> | ||
* | ||
* Usage: | ||
* <usage> | ||
* | ||
*/ | ||
// | ||
// Author: | ||
// Created: Fri Jun 1 12:30:43 CEST 2007 | ||
// $Id$ | ||
// | ||
|
||
#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" | ||
|
||
class EcalLaserAPDPNRatiosMCRcd : public edm::eventsetup::EventSetupRecordImplementation<EcalLaserAPDPNRatiosMCRcd> {}; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
// -*- C++ -*- | ||
// | ||
// Package: DataRecord | ||
// Class : EcalLaserAPDPNRatiosMCRcd | ||
// | ||
// Implementation: | ||
// <Notes on implementation> | ||
// | ||
// Author: | ||
// Created: Fri Jun 1 12:30:43 CEST 2019 | ||
// $Id$ | ||
|
||
#include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosMCRcd.h" | ||
#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" | ||
|
||
EVENTSETUP_RECORD_REG(EcalLaserAPDPNRatiosMCRcd); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -644,8 +644,8 @@ def identitySim(wf): | |
'CMSSW_10_6_0-106X_upgrade2018_realistic_v4-v1', # 18 - GENSIM input for 2018 fullSim premix workflows | ||
'CMSSW_10_6_0-106X_upgrade2018_realistic_v4_FastSim-v1', # 19 - fastSim MinBias for mixing UP18 | ||
'CMSSW_10_6_0-PU25ns_106X_upgrade2018_realistic_v4_FastSim-v1',# 20 - fastSim premix library UP18 | ||
'CMSSW_10_6_0-106X_mc2017_realistic_v3-v1', # 21 - GEN-SIM inputs for LHE-GEN-SIM 2017 workflows | ||
'CMSSW_10_6_0-106X_upgrade2018_realistic_v4-v1', # 22 - GEN-SIM inputs for LHE-GEN-SIM 2018 workflows | ||
'CMSSW_10_6_0-106X_mc2017_realistic_v3-v1', # 21 - GEN-SIM inputs for LHE-GEN-SIM 2017 workflows | ||
'CMSSW_10_6_0-106X_upgrade2018_realistic_v4-v1', # 22 - GEN-SIM inputs for LHE-GEN-SIM 2018 workflows | ||
] | ||
|
||
# note: INPUT commands to be added once GEN-SIM w/ 13TeV+PostLS1Geo will be available | ||
|
@@ -1745,8 +1745,10 @@ def lhegensim2018ml(fragment,howMuch): | |
|
||
steps['DIGIPRMXUP15_PU50']=merge([digiPremixUp2015Defaults50ns]) | ||
steps['DIGIPRMXUP17_PU25']=merge([digiPremixUp2017Defaults25ns]) | ||
steps['DIGIPRMXUP17_PU25_RD']=merge([digiPremixUp2017Defaults25ns, { '--customise_commands':"\"process.EcalLaserCorrectionServiceMC = cms.ESProducer('EcalLaserCorrectionServiceMC') \\n process.GlobalTag.toGet = cms.VPSet( cms.PSet( record = cms.string('EcalLaserAPDPNRatiosMCRcd'), tag = cms.string('EcalLaserAPDPNRatios_UL_2017_mc'), connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS') ) ) \\n process.ecal_sim_parameter_map.timeDependent=cms.bool(True)\"" } ]) | ||
steps['DIGIPRMXLOCALUP17_PU25']=merge([digiPremixLocalPileupUp2017Defaults25ns]) | ||
steps['DIGIPRMXUP18_PU25']=merge([digiPremixUp2018Defaults25ns]) | ||
steps['DIGIPRMXUP18_PU25_RD']=merge([digiPremixUp2018Defaults25ns, { '--customise_commands':"\"process.EcalLaserCorrectionServiceMC = cms.ESProducer('EcalLaserCorrectionServiceMC') \\n process.GlobalTag.toGet = cms.VPSet( cms.PSet( record = cms.string('EcalLaserAPDPNRatiosMCRcd'), tag = cms.string('EcalLaserAPDPNRatios_UL_2018_mc_3sigma_v2'), connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS') ) ) \\n process.ecal_sim_parameter_map.timeDependent=cms.bool(True)\"" } ]) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The same question as in L1748 applies here. |
||
steps['DIGIPRMXLOCALUP18_PU25']=merge([digiPremixLocalPileupUp2018Defaults25ns]) | ||
|
||
premixProd25ns = {'-s' : 'DIGI,DATAMIX,L1,DIGI2RAW,HLT:@relval2016', | ||
|
@@ -1882,7 +1884,7 @@ def lhegensim2018ml(fragment,howMuch): | |
'--datatier':'AOD,DQMIO', | ||
'--eventcontent':'AOD,DQM', | ||
'--era':'Run2_2018_pp_on_AA', | ||
'--customise':'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018_pp_on_AA', | ||
'--customise':'Configuration/DataProcessing/RecoTLR.customisePostEra_Run2_2018_pp_on_AA', | ||
'-n':'10' | ||
},steps['RECOHID15']]) | ||
|
||
|
@@ -3077,7 +3079,7 @@ def gen2018HiMix(fragment,howMuch): | |
baseDataSetReleaseBetter={} | ||
for gen in upgradeFragments: | ||
for ds in defaultDataSets: | ||
key=gen[:-4]+'_'+ds | ||
key=gen[:-4]+'_'+ds | ||
version='1' | ||
if key in versionOverrides: | ||
version = versionOverrides[key] | ||
|
@@ -3088,15 +3090,15 @@ def gen2018HiMix(fragment,howMuch): | |
key='MinBias_14TeV_pythia8_TuneCUETP8M1'+'_'+ds | ||
name=baseDataSetReleaseBetter[key] | ||
if '2017' in ds: | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_35_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_35_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
elif '2018' in ds: | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_50_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_50_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
elif '2021' in ds: | ||
PUDataSets[ds]={'-n':10,'--pileup':'Run3_Flat55To75_PoissonOOTPU','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} | ||
elif 'postLS2' in ds: | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_50_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_50_BX_25ns','--pileup_input':'das:/RelValMinBias_13/%s/GEN-SIM'%(name,)} | ||
elif '2026' in ds: | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_200_BX_25ns','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_200_BX_25ns','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} | ||
else: | ||
PUDataSets[ds]={'-n':10,'--pileup':'AVE_35_BX_25ns','--pileup_input':'das:/RelValMinBias_14TeV/%s/GEN-SIM'%(name,)} | ||
|
||
|
@@ -3249,7 +3251,7 @@ def gen2018HiMix(fragment,howMuch): | |
'--datatier':'NANOAODSIM', | ||
'-n':'10', | ||
'--eventcontent':'NANOEDMAODSIM', | ||
'--filein':'file:step3_inMINIAODSIM.root', | ||
'--filein':'file:step3_inMINIAODSIM.root', | ||
'--geometry' : geom | ||
} | ||
|
||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you also need to specify a run number from the 2017 era to be used in the simulation? Otherwise how do you get the laser corrections from the appropriate IOV?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently this is a test, and it is using only 1 IOV.
As shown in the slides linked, in order to have the time dependent I did, for my private production, the following:
in the digipremixing, and
in the sim step.
Would you like me to prepare the workflow as this?
Is this how things will be produced centrally?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't you also need to include a time-dependent
EcalLaserAPDPNRatiosRcd
in these tests? For example, I would have expected you to need to use something like: EcalLaserAPDPNRatios_Run_Dep_MC. For example, for a ten-event relval for a test covering five 2018 IOVs, you would need in the GEN step:and in the DIGIPRMX step:
I can't comment on the plans for central production but I think that the relval workflow should test the use of multi-IOV tags in MC. As far as I can tell, it does not. Or have I misunderstood?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok, I will prepare the worflow to use more IOVs, meaning I will prepare the python configuration, but the c++ code here in this PR is independent from it.
Question to relval experts: where is the number of events per workflow defined? Is it handled with some configuration?
At the end we will ask for a "big relval" sample of Zee to estimate the performance of the time dependent MC, and since we have a fixed number of IOVs we can handle, I need to set properly the "numberEventsInLuminosityBlock".
Should this be part of this PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@amassiro : sorry I have missed your question. The number of events per workflow is set here (
cmssw/Configuration/PyReleaseValidation/python/relval_steps.py
Line 589 in 7d89f4d
For "numberEventsInLuminosityBlock", you can add this parameter similarly to this line
cmssw/Configuration/PyReleaseValidation/python/relval_steps.py
Line 1507 in 7d89f4d
Chayanit for PdmV