Skip to content
rymuelle edited this page May 7, 2019 · 9 revisions

Producing a sample

You will need the Producer package for this. Find notes here:

https://github.com/cms-mual/Producers/wiki/Producing-a-Sample/

Refit

Warning: ALCARECO not sufficent

To Be Added: Instructions for setting up directory and necessary files (CRAB submission script, python config)

CRAB config

from CRABClient.UserUtilities import config
config = config()

config.section_("General")
config.General.requestName = 'ZMM_10_1_0_pre3_ideal_9M_2018_realistic_bad_realistic_input'
config.General.workArea = 'crab_projects'
config.General.transferLogs = True

config.section_("JobType")
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = 'refit_realistic_v3_MuAl_cfg.py'
config.JobType.outputFiles = ['output.root']
#config.JobType.inputFiles = ['Geometries/muonGeometry_IDEAL_AllZeroes.Ape6x6.StdTags.746p3.DBv2.db','Geometries/inertGlobalPositionRcd.StdTags.746p3.DBv2.db']
#uncomment if you need to include custom dbs

config.section_("Data")
config.Data.inputDataset = '/ZMM_10_1_0_pre3_ideal_9M_2018_realisitic_2018_bad_step1/rymuelle-crab_ZMM_10_1_0_pre3_ideal_9M_2018_realistic_bad_step2_v2_full_reco_v2-705ec9a5babc0fb1114dc28330738940/USER'
config.Data.inputDBS = 'phys03' # global if not produced by a user in our group, check DAS
config.Data.splitting = 'FileBased'
config.Data.unitsPerJob = 10
config.Data.outLFNDirBase =  '/store/group/alca_muonalign/ryan/ZMM_10_1_0_pre3_ideal_9M_2018_realistic_bad_realistic_input'**
config.Data.publication = False

config.section_("Site")
config.Site.storageSite = 'T2_CH_CERN'

Example CRAB config for Data

from CRABClient.UserUtilities import config
config = config()

config.section_("General")
config.General.requestName = 'MuAlRefit_data_297099-300817_Bv1_ReReco'
config.General.workArea = 'crab_projects'
config.General.transferLogs = True

config.section_("JobType")
config.JobType.pluginName = 'Analysis'
config.JobType.psetName = 'refit_ideal_MuAl_cfg.py'
config.JobType.outputFiles = ['output.root']
#6DOF
config.JobType.inputFiles = ['Geometries/data_DT-1100-111111_2017UL_IOV1_CMSSW105_JSON-297099-300817_dataRun2_MuAl_v2_01.db',
'Geometries/data_CSC-1100-110001_2017UL_IOV1_CMSSW105_JSON-297099-300817_dataRun2_MuAl_v1_01.db',
'Geometries/GPR_Apr26_2019_SW1060_GTRun2_TrAl2017_IOV1_dL4_iter1.db',
'Geometries/APEs_COV_t2_DT_6DOF_2017Data_ReReco_IOV1.db']
config.JobType.allowUndistributedCMSSW = True

config.section_("Data")
config.Data.inputDataset = '/SingleMuon/Run2017B-ZMu-17Nov2017-v1/RAW-RECO'
config.Data.inputDBS = 'global' # global`
config.Data.splitting = 'LumiBased'
config.Data.unitsPerJob = 20
config.Data.lumiMask = 'Geometries/Cert_297099-300817_13TeV_EOY2017ReReco_Collisions17_JSON_MuonPhys.txt'
config.Data.outLFNDirBase =  '/store/group/alca_muonalign/ryan/MuAlRefit_data_297099-300817_Bv1_ReReco'
config.Data.publication = True


config.section_("Site")
config.Site.storageSite = 'T2_CH_CERN'

Always check:

Argument Comment
config.Data.outLFNDirBase Where are you saving this?
config.Data.unitsPerJob Are the jobs to small or large memory usage wise?
config.Data.splitting Is it data or MC?
config.Data.inputDBS Where is the input data located? Check DAS.
config.Data.inputDataset What is the input data?
config.JobType.inputFiles Are you supplying user input?
config.JobType.psetName What config are you using?
config.General.requestName Is your name clear?
config.Data.lumiMask Are you using the right Lumimask for data?

JSON for 2017 here.
All JSON here.

Python cfg file

check:

process.GlobalTag.globaltag = "101X_upgrade2018_realistic_v6" #! GT Here

#...several lines later...

#New Tracker geometry from GT in this case
process.GlobalTag.toGet = cms.VPSet(
        ###### starts customization of tracker part
         cms.PSet(record = cms.string("TrackerAlignmentRcd"),
                  tag =  cms.string("TrackerAlignment_MP_Run2016B_v2"),
                  connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS')
                  ),
         cms.PSet(record = cms.string("TrackerAlignmentErrorExtendedRcd"),
                  tag =  cms.string("TrackerAlignmentExtendedErrors_MP_Run2016B"),
                  connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS')
                  ),
         cms.PSet(record = cms.string("SiPixelTemplateDBObjectRcd"),
                  tag =  cms.string("SiPixelTemplateDBObject_38T_2016_v1_hltvalidation"),
                  connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS')
                  )
)
 #Muon geometry (CRAB copies take the files location in the crab.py file and copy it where the cmsRun command is executed)
process.muonDtAlignment = cms.ESSource("PoolDBESSource", CondDBSetup,
                                     connect = cms.string('sqlite_file:muonGeometry_IDEAL_AllZeroes.Ape6x6.StdTags.746p3.DBv2.db'),
                                     toGet   = cms.VPSet(cms.PSet(record = cms.string("DTAlignmentRcd"),  tag = cms.string("DTAlignmentRcd")))
                                     )
process.es_prefer_muonDtAlignment = cms.ESPrefer("PoolDBESSource","muonDtAlignment")

process.muonCscAlignment = cms.ESSource("PoolDBESSource", CondDBSetup,
                                     connect = cms.string('sqlite_file:muonGeometry_IDEAL_AllZeroes.Ape6x6.StdTags.746p3.DBv2.db'),
                                     toGet   = cms.VPSet(cms.PSet(record = cms.string("CSCAlignmentRcd"), tag = cms.string("CSCAlignmentRcd")))
                                     )
process.es_prefer_muonCscAlignment = cms.ESPrefer("PoolDBESSource","muonCscAlignment")

process.globalPosition = cms.ESSource("PoolDBESSource", CondDBSetup,
                                     connect = cms.string('sqlite_file:inertGlobalPositionRcd.StdTags.746p3.DBv2.db'),
                                     toGet   = cms.VPSet(cms.PSet(record = cms.string("GlobalPositionRcd"), tag = cms.string("inertGlobalPositionRcd")))
                                     )
process.es_prefer_globalPosition = cms.ESPrefer("PoolDBESSource","globalPosition")
# Asymptotic Muon APEs
process.GlobalTag.toGet = cms.VPSet(
         cms.PSet(record = cms.string("CSCAlignmentErrorExtendedRcd"),
                  tag =  cms.string("MuonCSCAPEObjectsExtended_v0_mc"),
                  connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS')
                  ),
         cms.PSet(record = cms.string("DTAlignmentErrorExtendedRcd"),
                  tag =  cms.string("DTAlignmentErrorExtendedRcd"),
                  connect = cms.string('sqlite_file:APEs_DT_Data_AllContributions_AllTypesOfApes_3DOF.db')
                  )
)

Note: comment out if you just want to use db as found in Global Tag. Only supply db for custom refits.

Ask yourself: What GT was used to produce the sample? Not sure what GT to use? Check here: https://github.com/cms-sw/cmssw/blob/master/Configuration/AlCa/python/autoCond.py

Be sure to select the appropriate CMSSW version.

Either use 'frontier://FrontierProd/CMS_CONDITIONS' or sqlite: 'sqlite_file:muonGeometry_IDEAL_AllZeroes.Ape6x6.StdTags.746p3.DBv2.db'). if sqlite, be sure to supply db in crab config.

Test run cfg locally before crab submission if in doubt.

Supply file here:

	process = cms.Process("MUALREFIT")
	process.source = cms.Source("PoolSource",
    	fileNames = cms.untracked.vstring('file:out_RECO_dropped.root')
	)

Finding a sample:

	cmsenv
	voms-proxy-init -voms cms
	dasgoclient -query="dataset=/*ZMM_10_1_0_pre3_ideal_9M_2018_d*/*/* instance=prod/phys03"

For data use RAW-RECO. e.g. /SingleMuon/Run2018A-ZMu-PromptReco-v2/RAW-RECO

Didn't find your sample? What instance is the sample in? Check the online DAS search feature if you are really not sure.

Submit crab job:

	cmsenv
	source /cvmfs/cms.cern.ch/crab3/crab.sh
	voms-proxy-init -voms cms

	crab submit -c crab_MC_realistic_v3.py --dryrun
	crab proceed

Why dryrun? It will tell you if your job will work. If you are confident, leave it out to submit faster.

Using tcsh?

source /cvmfs/cms.cern.ch/crab3/crab.csh

Clone this wiki locally