Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions EcalTiming/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
processDump*.py
28 changes: 28 additions & 0 deletions EcalTiming/bin/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<use name="root"/>
<use name="rootgraphics"/>
<use name="FWCore/FWLite"/>
<use name="FWCore/ParameterSet"/>
<use name="FWCore/ParameterSetReader"/>
<use name="FWCore/ServiceRegistry"/>
<use name="FWCore/Framework"/>
<use name="FWCore/Utilities"/>
<use name="PhysicsTools/Utilities"/>
<use name="CommonTools/UtilAlgos"/>
<use name="DataFormats/Common"/>
<use name="DataFormats/EcalRecHit"/>
<use name="DataFormats/EcalDetId"/>
<use name="Calibration/Tools"/>
<use name="Geometry/CaloGeometry"/>
<use name="Geometry/Records"/>
<use name="Geometry/EcalMapping"/>
<use name="CondFormats/DataRecord"/>
<use name="CondFormats/EcalObjects"/>
<use name="CondTools/Ecal"/>
<use name="EcalTiming/EcalTiming"/>
<flags EDM_PLUGIN="1"/>
<environment>
<bin
name="EcalTimingCalibration"
file="EcalTimingCalibration.cpp">
</bin>
</environment>
583 changes: 583 additions & 0 deletions EcalTiming/bin/EcalTimingCalibration.cpp

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions EcalTiming/crab/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
crab_projects/
crab_Production_*py
crab.log
EcalTimeCalibConstants_Run1_Run2_Run3_v02_offline*

# local files
hadd
submitall
42 changes: 42 additions & 0 deletions EcalTiming/crab/CRAB_run_job_template.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# -----------------------------------------
# CRAB Job: Created on 2022/2/27 18:28:11 UTC
# -----------------------------------------

try:
from CRABClient.UserUtilities import config
except ImportError:
print
print('ERROR: Could not load CRABClient.UserUtilities. Please source the crab3 setup:')
print('source /cvmfs/cms.cern.ch/crab3/crab.sh')
exit(-1)

config = config()

config.General.requestName = 'AlCaPhiSym_Run2022D-v1_RAW_<RUN>'
config.General.workArea = 'crab_projects/Production_<DATE>'
config.General.transferOutputs = True
config.General.transferLogs = True

config.JobType.pluginName = 'Analysis'
config.JobType.pyCfgParams = ['outputFile=timing_reco_selections.root', 'globaltag=<GT>']
config.JobType.psetName = 'ecalTime_fromAlcaStream_2022D.py'

config.JobType.allowUndistributedCMSSW = True
config.JobType.maxJobRuntimeMin = 1440
config.JobType.maxMemoryMB = 3200
#config.JobType.sendPythonFolder = True

config.Data.userInputFiles = [<FILES>]

config.Data.inputDBS = 'global'
config.Data.splitting = 'FileBased' #'LumiBased' / 'FileBased'
config.Data.unitsPerJob = <NFILES> #30000
config.Data.outLFNDirBase = '/store/group/dpg_ecal/alca_ecalcalib/EcalTiming/Run2022D_Prompt/'
config.Data.publication = False
config.Data.allowNonValidInputDataset = True

# GRID
config.Site.storageSite = 'T2_CH_CERN'
#config.Site.Whitelist = ['T3_CH_CERN_CAF']
#config.Site.Blacklist = ['T1_US_FNAL', 'T2_UA_KIPT', 'T2_UK_London_Brunel', 'T2_CH_CSCS', 'T2_US_*']
config.Site.ignoreGlobalBlacklist = False
1 change: 1 addition & 0 deletions EcalTiming/crab/SubmitCRAB.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
crab submit -c CRAB_Production_26_02_2022_AlCaPhiSym_Run2018D-v1_RAW.py
26 changes: 26 additions & 0 deletions EcalTiming/crab/configs/UL2018D.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
InputDataset: '/AlCaPhiSym/Run2018D-v1/RAW'
Pycfgparams:
- 'outputFile=timing_reco_selections.root'
- 'globaltag=106X_dataRun2_v28'
Map: 'maps/run_file_map_AlCaPhiSym_Run2018D-v1_RAW.json'
TransferOutputs: True
TransferLogs: True
PsetName: 'test/ecalTime_fromAlcaStream_cfg.py'
MaxJobRunTime: 2750
InputDBS: 'global'
JSON: 'json/13TeV_Collisions18_DCSONLY.json'
Splitting: 'LumiBased'
UnitsPerJob: 100
FilePath: '/store/user/bjoshi'
StorageSite: 'T2_US_Florida'
UseWhitelist: False
UseBlacklist: False
IgnoreGlobalBlacklist: False
Whitelist:
- 'T3_CH_CERN_CAF'
Blacklist:
- 'T1_US_FNAL'
- 'T2_UA_KIPT'
- 'T2_UK_London_Brunel'
- 'T2_CH_CSCS'
- 'T2_US_*'
25 changes: 25 additions & 0 deletions EcalTiming/crab/configs/UL2018D_t2cern_bjoshi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
InputDataset: '/AlCaPhiSym/Run2018D-v1/RAW'
Pycfgparams:
- 'outputFile=timing_reco_selections.root'
- 'globaltag=106X_dataRun2_v28'
TransferOutputs: True
TransferLogs: True
PsetName: 'test/ecalTime_fromAlcaStream_cfg.py'
MaxJobRunTime: 2750
InputDBS: 'global'
JSON: 'json/13TeV_Collisions18_DCSONLY.json'
Splitting: 'FileBased'
UnitsPerJob: 1000
FilePath: '/store/group/dpg_ecal/alca_ecalcalib/EcalTiming/Run2018D_UltraLegacy/Test/'
StorageSite: 'T2_CH_CERN'
UseWhitelist: False
UseBlacklist: False
IgnoreGlobalBlacklist: False
Whitelist:
- 'T3_CH_CERN_CAF'
Blacklist:
- 'T1_US_FNAL'
- 'T2_UA_KIPT'
- 'T2_UK_London_Brunel'
- 'T2_CH_CSCS'
- 'T2_US_*'
130 changes: 130 additions & 0 deletions EcalTiming/crab/crab_manager.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# -------------------------------------
# Script to generate CRAB jobs
# -------------------------------------

#!/usr/bin/env python

import os, sys

from yaml_utils import *
from collections import OrderedDict

from datetime import datetime
from time_utils import *

import json


class crab_job_manager():

def __init__(self, file_ = ''):

self.config_file = file_
self.config = None
self.mc = False
self.production_tag = ''
self.parameter_list = ['InputDataset', 'Pycfgparams', 'JSON', 'Map',\
'RequestName','WorkArea', 'TransferOutputs','TransferLogs',\
'PsetName','MaxJobRunTime','InputDBS','Splitting',\
'UnitsPerJob','FilePath','StorageSite','UseWhitelist',\
'UseBlacklist','Whitelist','Blacklist', 'IgnoreGlobalBlacklist']
self.ignore_list = []

def check_config(self):

for key_ in self.parameter_list:
if key_ not in self.config:
self.ignore_list.append(key_)

def read_config_file(self, file_):

self.config_file = file_
self.config = ordered_load(open(file_), Loader=yaml.SafeLoader)

self.config['RequestName'] = ''
self.config['WorkArea'] = 'crab_projects/{}'.format(self.production_tag)

self.check_config()

def produce_crab_submission_script(self):

cfg_list = []

# check if InputDataset exists
if 'InputDataset' not in self.config:
print('Input Dataset not found in the config file!!')
sys.exit(2)

dataset = self.config['InputDataset']

# get the output prefix from the parameters
output_prefix = None
outputFile_idx = -1
for iparam, param_ in enumerate(self.config['Pycfgparams']):
if 'outputFile=' in param_:
output_prefix = param_
outputFile_idx = iparam

if (outputFile_idx==-1):
print('outputFile option nor found in pyCfgParams!!')
sys.exit(2)

# Print the list of ignored keys
print('''The following parameters were not specified in the config.\nThey will be ignored in all the CRAB files.''')

for item_ in self.ignore_list:
print('\t-{}'.format(item_))


dataset_tag = dataset.replace('/', '_')
print(dataset_tag)
self.config['RequestName'] = '{}'.format(dataset_tag[1:99])
pyscript_name = 'CRAB_{}{}.py'.format(self.production_tag, dataset_tag)

with open('crab_template.txt', 'read') as tmp:
with open(pyscript_name, 'w') as sub:

plain_text = tmp.readlines()
new_text = []

for line in plain_text:
newline = line
if 'Template file for CRAB job submission' in line:
newline = '# CRAB Job: {}\n'.format(print_creation_timestamp())
for key_ in self.parameter_list:
if '<{}>'.format(key_) in line:
if key_ not in self.config: newline=''
else:
par_ = self.config[key_]
if 'PycfgParams' in key_:
newline = 'config.Data.pyCfgParams = ['
for param_ in self.config['Pycfgparams']: newline += '"{}",\n'.format(param_)
newline += ']\n'

elif type(par_)==str:
newline = line.replace('<{}>'.format(key_), "'{}'".format(par_))
else:
newline = line.replace('<{}>'.format(key_), str(par_))
if key_=='Blacklist' and self.config['UseBlacklist']==False:
newline = '#'+newline
if key_=='Whitelist' and self.config['UseWhitelist']==False:
newline = '#'+newline

new_text.append(newline)


for line in new_text:
sub.write(line)

cfg_list.append(pyscript_name)

return cfg_list

def setup_crab(self, file_, tag_, mc_):

self.mc = mc_
self.production_tag = tag_
self.read_config_file(file_)
_ = self.produce_crab_submission_script()

return _
Loading