Пример #1
0
    def __init__(self, run, dir, config):
        self.pset_name = 'DTTTrigCalibration_cfg.py'
        self.outputfile = 'DTTimeBoxes.root'
        self.config = config
        self.dir = dir

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_ttrig_prod_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTTTrigCalibration_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_prod.cfg'
        self.pset_template = config.templatepath + '/config/DTTTrigCalibration_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name
        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Production'
        #self.desc = desc

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.dir,self.crab_cfg,self.pset,self.pset_name)
        self.task = CrabTask(self.dir, self.crab_cfg)
Пример #2
0
    def __init__(self, run, dir, input_db, config):
        self.pset_name = 'DTkFactValidation_1_cfg.py'
        self.outputfile = 'residuals.root,DQM.root'
        self.config = config
        self.dir = dir
        self.inputdb = input_db

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_Valid_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTkFactValidation_1_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_valid.cfg'
        self.pset_template = config.templatepath + '/config/DTkFactValidation_1_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name

        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Validation'
        #self.desc = desc

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.desc,self.crab_cfg,self.pset,pset_name)
        self.task = CrabTask(self.dir, self.crab_cfg)
    def __init__(self, run, dir, config):
        self.pset_name = 'dtVDriftSegmentCalibration_cfg.py'
        self.outputfile = 'DTVDriftHistos.root'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtVDriftSegmentCalibration_cfg'
        if hasattr(self.config, 'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtVDriftSegmentCalibration_cosmics_cfg'

        self.process = None
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir, self.crab_cfg)
Пример #4
0
    def __init__(self, run, dir, input_db, config):
        self.pset_name = 'dtResidualCalibration_cfg.py'
        self.outputfile = 'residuals.root'
        self.config = config
        self.dir = dir
        self.inputdb = input_db

        self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cfg'
        if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)
Пример #5
0
    def __init__(self, run, dir, config):
        self.pset_name = 'dtNoiseCalibration_cfg.py'
        self.outputROOT = 'dtNoiseCalib.root'
        self.outputDB = 'noise.db'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cfg'
        #if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
        #    self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)
Пример #6
0
    def __init__(self, run, dir, config):
        self.pset_name = 'DTTTrigCalibration_cfg.py'
        self.outputfile = 'DTTimeBoxes.root'
        self.config = config
        self.dir = dir 

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_ttrig_prod_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTTTrigCalibration_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_prod.cfg'
        self.pset_template = config.templatepath + '/config/DTTTrigCalibration_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name
        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Production'
        #self.desc = desc 

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.dir,self.crab_cfg,self.pset,self.pset_name)
        self.task = CrabTask(self.dir,self.crab_cfg) 
Пример #7
0
class DTNoiseCalibration:
    def __init__(self, run, dir, config):
        self.pset_name = 'dtNoiseCalibration_cfg.py'
        self.outputROOT = 'dtNoiseCalib.root'
        self.outputDB = 'noise.db'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cfg'
        #if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
        #    self.pset_template = 'CalibMuon.DTCalibration.dtNoiseCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)

    def initProcess(self):
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        self.process.dtNoiseCalibration.rootFileName = self.outputROOT 

	if hasattr(self.config,'inputDBTag') and self.config.inputDBTag:
	    tag = self.config.inputDBTag
	    record = self.config.inputDBRcd
	    connect = self.config.connectStrDBTag
	    moduleName = 'customDB%s' % record 
	    addPoolDBESSource(process = self.process,
			      moduleName = moduleName,record = record,tag = tag,
			      connect = connect)

        if hasattr(self.config,'runOnRAW') and self.config.runOnRAW:
            if hasattr(self.config,'runOnMC') and self.config.runOnMC:
                getattr(self.process,self.config.digilabel).inputLabel = 'rawDataCollector' 
            prependPaths(self.process,self.config.digilabel)
 
        if hasattr(self.config,'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process,seqname)

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg()
        loadCrabDefault(crab_cfg_parser,self.config)
        crab_cfg_parser.set('CMSSW','pset',self.pset_name)
        crab_cfg_parser.set('CMSSW','output_file','%s,%s' % (self.outputDB,self.outputROOT))
        crab_cfg_parser.remove_option('USER','additional_input_files')

        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process,self.dir,self.pset_name)
        #writeCfgPkl(self.process,self.dir,self.pset_name)

    def run(self):
        self.project = self.task.run()
        return self.project
Пример #8
0
class DTTTrigProd:
    #def __init__(self, run, crab_opts, pset_opts, template_path):
    def __init__(self, run, dir, config):
        self.pset_name = 'DTTTrigCalibration_cfg.py'
        self.outputfile = 'DTTimeBoxes.root'
        self.config = config
        self.dir = dir 

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_ttrig_prod_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTTTrigCalibration_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_prod.cfg'
        self.pset_template = config.templatepath + '/config/DTTTrigCalibration_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name
        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Production'
        #self.desc = desc 

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.dir,self.crab_cfg,self.pset,self.pset_name)
        self.task = CrabTask(self.dir,self.crab_cfg) 

    def initProcess(self):
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        self.process.ttrigcalib.digiLabel = self.config.digilabel
        if hasattr(self.config,'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process,seqname)

        #writeCfg(self.process,self.dir,self.pset_name)
        #self.pset = self.process.dumpPython()

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg(self.crab_template)
        loadCrabDefault(crab_cfg_parser,self.config)
        crab_cfg_parser.set('CMSSW','pset',self.pset_name)
        crab_cfg_parser.set('CMSSW','output_file',self.outputfile) 
        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process,self.dir,self.pset_name)

    def run(self):
        self.project = self.task.run() 
        return self.project
Пример #9
0
class DTTTrigProd:
    #def __init__(self, run, crab_opts, pset_opts, template_path):
    def __init__(self, run, dir, config):
        self.pset_name = 'DTTTrigCalibration_cfg.py'
        self.outputfile = 'DTTimeBoxes.root'
        self.config = config
        self.dir = dir

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_ttrig_prod_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTTTrigCalibration_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_prod.cfg'
        self.pset_template = config.templatepath + '/config/DTTTrigCalibration_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name
        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Production'
        #self.desc = desc

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.dir,self.crab_cfg,self.pset,self.pset_name)
        self.task = CrabTask(self.dir, self.crab_cfg)

    def initProcess(self):
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        self.process.ttrigcalib.digiLabel = self.config.digilabel
        if hasattr(self.config, 'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process, seqname)

        #writeCfg(self.process,self.dir,self.pset_name)
        #self.pset = self.process.dumpPython()

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg(self.crab_template)
        loadCrabDefault(crab_cfg_parser, self.config)
        crab_cfg_parser.set('CMSSW', 'pset', self.pset_name)
        crab_cfg_parser.set('CMSSW', 'output_file', self.outputfile)
        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process, self.dir, self.pset_name)

    def run(self):
        self.project = self.task.run()
        return self.project
Пример #10
0
    def __init__(self, run, dir, config):
        self.pset_name = 'dtAnalysisResiduals_cfg.py'
        self.outputfile = 'residuals.root'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cfg'
        if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)
    def __init__(self, run, dir, config):
        self.pset_name = 'dtVDriftMeanTimerCalibration_cfg.py'
        self.outputfile = 'DTTMaxHistos.root'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtVDriftMeanTimerCalibration_cfg'
        if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtVDriftMeanTimerCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)
Пример #12
0
    def __init__(self, run, dir, config):
        self.outputfile = 'DQM.root'
        self.config = config
        self.dir = dir
        #self.inputdb = input_db

        self.pset_name = 'dtDQM_cfg.py'
        self.pset_template = 'CalibMuon.DTCalibration.dtDQMAlca_cfg'
        if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtDQMAlca_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)
Пример #13
0
class DTAnalysisResiduals:
    def __init__(self, run, dir, config):
        self.pset_name = 'dtAnalysisResiduals_cfg.py'
        self.outputfile = 'residuals.root'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cfg'
        if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtResidualCalibration_cosmics_cfg'

        self.process = None  
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir,self.crab_cfg)

    def initProcess(self):
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        self.process.dtResidualCalibration.rootFileName = self.outputfile 
        self.process.dtResidualCalibration.detailedAnalysis = True
        # Update Event Setup
	if hasattr(self.config,'inputDBTag') and self.config.inputDBTag:
	    tag = self.config.inputDBTag
	    record = self.config.inputDBRcd
	    connect = self.config.connectStrDBTag
	    moduleName = 'customDB%s' % record 
	    addPoolDBESSource(process = self.process,
			      moduleName = moduleName,record = record,tag = tag,
			      connect = connect)

        if hasattr(self.config,'inputTTrigDB') and self.config.inputTTrigDB:
            label = ''
            if hasattr(self.config,'runOnCosmics') and self.config.runOnCosmics: label = 'cosmics'
            addPoolDBESSource(process = self.process,
                              moduleName = 'tTrigDB',record = 'DTTtrigRcd',tag = 'ttrig',label = label,
                              connect = 'sqlite_file:%s' % os.path.basename(self.config.inputTTrigDB))

        if hasattr(self.config,'inputVDriftDB') and self.config.inputVDriftDB:
            addPoolDBESSource(process = self.process,
                              moduleName = 'vDriftDB',record = 'DTMtimeRcd',tag = 'vDrift',
                              connect = 'sqlite_file:%s' % os.path.basename(self.config.inputVDriftDB))

        if hasattr(self.config,'inputT0DB') and self.config.inputT0DB:
            addPoolDBESSource(process = self.process,
                              moduleName = 't0DB',record = 'DTT0Rcd',tag = 't0',
                              connect = 'sqlite_file:%s' % os.path.basename(self.config.inputT0DB))

        # Update sequences
        if hasattr(self.config,'runOnRAW') and self.config.runOnRAW:
            if hasattr(self.config,'runOnMC') and self.config.runOnMC:
                getattr(self.process,self.config.digilabel).inputLabel = 'rawDataCollector' 
            prependPaths(self.process,self.config.digilabel)
 
        if hasattr(self.config,'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process,seqname)

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg()
        loadCrabDefault(crab_cfg_parser,self.config)
        crab_cfg_parser.set('CMSSW','pset',self.pset_name)
        crab_cfg_parser.set('CMSSW','output_file',self.outputfile)
        crab_cfg_parser.remove_option('USER','additional_input_files')

        if hasattr(self.config,'inputTTrigDB') and self.config.inputTTrigDB:
            addCrabInputFile(crab_cfg_parser,self.config.inputTTrigDB)

        if hasattr(self.config,'inputVDriftDB') and self.config.inputVDriftDB:
            addCrabInputFile(crab_cfg_parser,self.config.inputVDriftDB)

        if hasattr(self.config,'inputT0DB') and self.config.inputT0DB:
            addCrabInputFile(crab_cfg_parser,self.config.inputT0DB)

        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process,self.dir,self.pset_name)
        #writeCfgPkl(self.process,self.dir,self.pset_name)

    def run(self):
        self.project = self.task.run()
        return self.project
class DTVDriftSegmentCalibration:
    def __init__(self, run, dir, config):
        self.pset_name = 'dtVDriftSegmentCalibration_cfg.py'
        self.outputfile = 'DTVDriftHistos.root'
        self.config = config
        self.dir = dir

        self.pset_template = 'CalibMuon.DTCalibration.dtVDriftSegmentCalibration_cfg'
        if hasattr(self.config, 'runOnCosmics') and self.config.runOnCosmics:
            self.pset_template = 'CalibMuon.DTCalibration.dtVDriftSegmentCalibration_cosmics_cfg'

        self.process = None
        self.crab_cfg = None
        self.initProcess()
        self.initCrab()
        self.task = CrabTask(self.dir, self.crab_cfg)

    def initProcess(self):
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        self.process.dtVDriftSegmentCalibration.rootFileName = self.outputfile
        # Add tTrig and vDrift DB's, if requested
        if hasattr(self.config, 'inputTTrigDB') and self.config.inputTTrigDB:
            label = ''
            if hasattr(self.config,
                       'runOnCosmics') and self.config.runOnCosmics:
                label = 'cosmics'
            addPoolDBESSource(process=self.process,
                              moduleName='tTrigDB',
                              record='DTTtrigRcd',
                              tag='ttrig',
                              label=label,
                              connect='sqlite_file:%s' %
                              os.path.basename(self.config.inputTTrigDB))

        if hasattr(self.config, 'inputVDriftDB') and self.config.inputVDriftDB:
            addPoolDBESSource(process=self.process,
                              moduleName='vDriftDB',
                              record='DTMtimeRcd',
                              tag='vDrift',
                              connect='sqlite_file:%s' %
                              os.path.basename(self.config.inputVDriftDB))

        if hasattr(self.config, 'inputDBTag') and self.config.inputDBTag:
            tag = self.config.inputDBTag
            record = self.config.inputDBRcd
            connect = self.config.connectStrDBTag
            moduleName = 'customDB%s' % record
            addPoolDBESSource(process=self.process,
                              moduleName=moduleName,
                              record=record,
                              tag=tag,
                              connect=connect)

        # Prepend paths with unpacker if running on RAW
        if hasattr(self.config, 'runOnRAW') and self.config.runOnRAW:
            if hasattr(self.config, 'runOnMC') and self.config.runOnMC:
                getattr(self.process,
                        self.config.digilabel).inputLabel = 'rawDataCollector'
            prependPaths(self.process, self.config.digilabel)

        # Prepend paths with custom selection sequence
        if hasattr(self.config, 'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process, seqname)

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg()
        loadCrabDefault(crab_cfg_parser, self.config)
        crab_cfg_parser.set('CMSSW', 'pset', self.pset_name)
        crab_cfg_parser.set('CMSSW', 'output_file', self.outputfile)
        crab_cfg_parser.remove_option('USER', 'additional_input_files')
        if hasattr(self.config, 'inputTTrigDB') and self.config.inputTTrigDB:
            addCrabInputFile(crab_cfg_parser, self.config.inputTTrigDB)

        if hasattr(self.config, 'inputVDriftDB') and self.config.inputVDriftDB:
            addCrabInputFile(crab_cfg_parser, self.config.inputVDriftDB)

        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process, self.dir, self.pset_name)
        #writeCfgPkl(self.process,self.dir,self.pset_name)

    def run(self):
        self.project = self.task.run()
        return self.project
Пример #15
0
class DTTTrigValid:
    def __init__(self, run, dir, input_db, config):
        self.pset_name = 'DTkFactValidation_1_cfg.py'
        self.outputfile = 'residuals.root,DQM.root'
        self.config = config
        self.dir = dir
        self.inputdb = input_db

        #self.crab_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/crab/crab_Valid_TEMPL.cfg'
        #self.pset_template = os.environ['CMSSW_BASE'] + '/src/Workflow/' + 'templates/config/DTkFactValidation_1_TEMPL_cfg.py'
        self.crab_template = config.templatepath + '/crab/crab_ttrig_valid.cfg'
        self.pset_template = config.templatepath + '/config/DTkFactValidation_1_cfg.py'

        #self.crab_opts = crab_opts
        #self.crab_opts['PSET'] = pset_name

        #self.pset_opts = pset_opts

        #self.crab_cfg = replaceTemplate(self.crab_template,**self.crab_opts)
        #self.pset = replaceTemplate(self.pset_template,**self.pset_opts)

        #desc = 'Run%s'%run
        #desc += '/Ttrig/Validation'
        #self.desc = desc

        self.initProcess()
        self.initCrab()
        #self.task = CrabTask(self.desc,self.crab_cfg,self.pset,pset_name)
        self.task = CrabTask(self.dir, self.crab_cfg)

    def initProcess(self):
        import FWCore.ParameterSet.Config as cms
        self.process = loadCmsProcess(self.pset_template)
        self.process.GlobalTag.globaltag = self.config.globaltag
        if (self.inputdb):
            self.process.calibDB = cms.ESSource(
                "PoolDBESSource",
                self.process.CondDBSetup,
                timetype=cms.string('runnumber'),
                toGet=cms.VPSet(
                    cms.PSet(record=cms.string('DTTtrigRcd'),
                             tag=cms.string('ttrig'))),
                connect=cms.string('sqlite_file:'),
                authenticationMethod=cms.untracked.uint32(0))

            self.process.calibDB.connect = 'sqlite_file:%s' % os.path.basename(
                self.inputdb)
            self.process.es_prefer_calibDB = cms.ESPrefer(
                'PoolDBESSource', 'calibDB')

        if hasattr(self.config, 'preselection') and self.config.preselection:
            pathsequence = self.config.preselection.split(':')[0]
            seqname = self.config.preselection.split(':')[1]
            self.process.load(pathsequence)
            prependPaths(self.process, seqname)

    def initCrab(self):
        crab_cfg_parser = loadCrabCfg(self.crab_template)
        loadCrabDefault(crab_cfg_parser, self.config)
        crab_cfg_parser.set('CMSSW', 'pset', self.pset_name)
        crab_cfg_parser.set('CMSSW', 'output_file', self.outputfile)
        if self.inputdb:
            crab_cfg_parser.set('USER', 'additional_input_files', self.inputdb)
        else:
            crab_cfg_parser.remove_option('USER', 'additional_input_files')
        self.crab_cfg = crab_cfg_parser

    def writeCfg(self):
        writeCfg(self.process, self.dir, self.pset_name)

    def run(self):
        self.project = self.task.run()
        return self.project