Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:44:28

0001 # -----------------------------------------------------------------------------
0002 # o2o-template_cfg.py : cmsRun configuration file for o2o DCS extraction
0003 #
0004 # Author  : Jo Cole
0005 # Changes : Marco DeMattia
0006 #           Dave Schudel
0007 # -----------------------------------------------------------------------------
0008 
0009 # -----------------------------------------------------------------------------
0010 # Import configuration information & define our process
0011 # -----------------------------------------------------------------------------
0012 import FWCore.ParameterSet.Config as cms
0013 import os
0014 
0015 process = cms.Process("DCSO2O")
0016 
0017 # -----------------------------------------------------------------------------
0018 # Load our message logger
0019 # -----------------------------------------------------------------------------
0020 # process.load("CalibTracker.SiStripDCS.MessLogger_cfi")
0021 process.MessageLogger = cms.Service( "MessageLogger",
0022                                      debugModules = cms.untracked.vstring( "*" ),
0023                                      cout = cms.untracked.PSet( threshold = cms.untracked.string( "DEBUG" ) ),
0024                                      destinations = cms.untracked.vstring( "cout" )
0025                                      )
0026 
0027 # -----------------------------------------------------------------------------
0028 # These lines are needed to run an EDAnalyzer without events.  We need to
0029 #   specify an "EmptySource" so it doesn't try to load analysis data when it
0030 #   starts up.  The maxEvents is set to 1 here - this tells the program how
0031 #   many times to call the analyze() method in the EDAnalyzer.
0032 # -----------------------------------------------------------------------------
0033 process.maxEvents = cms.untracked.PSet(
0034     input = cms.untracked.int32(1)
0035 )
0036 process.source = cms.Source("EmptySource",
0037     numberEventsInRun = cms.untracked.uint32(1),
0038     firstRun = cms.untracked.uint32(1)
0039 )
0040 
0041 # -----------------------------------------------------------------------------
0042 # Define our ModuleHVBuilder process.  
0043 #
0044 # Parameters:
0045 #   onlineDB            : the connection string for the database
0046 #   authPath            : set to be $HOME
0047 #   Tmin                : start date & time to extract data
0048 #   Tmax                : end date & time to extract data
0049 #   TSetMin             : <unknown>
0050 #   queryType           : not needed any more - used to specify LASTVALUE or
0051 #                           STATUSCHANGE query.  We use STATUSCHANGE now.
0052 #   lastValueFile       : not needed
0053 #   lastValueFromFile   : 
0054 #   debugModeOn         : sets debug flag
0055 # -----------------------------------------------------------------------------
0056 
0057 process.SiStripDetVOffBuilder = cms.Service(
0058     "SiStripDetVOffBuilder",
0059     onlineDB = cms.string('oracle://cms_omds_lb/CMS_TRK_R'),
0060     authPath = cms.string(os.environ["HOME"]),
0061 
0062     #The Tmin and Tmax indicated here drive the ManualO2O.py script setting the overall interval
0063     #By default this is broken into 1 hour O2O jobs (1 cmsRun cfg per hour interval)
0064     # Format for date/time vector:  year, month, day, hour, minute, second, nanosecond      
0065     Tmin = cms.vint32(_TMIN_),
0066     Tmax = cms.vint32(_TMAX_),
0067     
0068     # Do NOT change this unless you know what you are doing!
0069     TSetMin = cms.vint32(2007, 11, 26, 0, 0, 0, 0),
0070     
0071     # queryType can be either STATUSCHANGE or LASTVALUE                                
0072     queryType = cms.string('STATUSCHANGE'),
0073     
0074     #Length in seconds of minimum deltaT for 2 consecutive IOVs in the original data to be considered separately and not be merged by the IOV reduction
0075     DeltaTmin = cms.uint32(2),
0076 
0077     #Length in seconds of the maximum time an IOV sequence can be (i.e. one can be compressing sequences up to 120 seconds long, after that a new IOV would be made)
0078     MaxIOVlength = cms.uint32(90),
0079 
0080     # if reading lastValue from file put insert file name here                              
0081     lastValueFile = cms.string(''),
0082     
0083     # flag to show if you are reading from file for lastValue or not                              
0084     lastValueFromFile = cms.bool(False),
0085     
0086     # flag to toggle debug output
0087     debugModeOn = cms.bool(False),
0088 
0089     
0090     # DetIdFile
0091     #Remember to change this to a Pixel list if you are testing the O2O code with Pixels before
0092     #the proper migration is done...
0093     DetIdListFile = cms.string('CalibTracker/SiStripCommon/data/SiStripDetInfo.dat'),
0094 
0095     # Threshold to consider an HV channel on
0096     HighVoltageOnThreshold = cms.double(0.97),
0097 
0098     # Leave empty if you want to use the db
0099     PsuDetIdMapFile = cms.string("CalibTracker/SiStripDCS/data/StripPSUDetIDMap_FromFeb2016.dat"),
0100 
0101     #This excluded detids file is not currently used (it was needed when there were unmapped detids.
0102     ExcludedDetIdListFile = cms.string('')
0103 )
0104 
0105 # -----------------------------------------------------------------------------
0106 # Service to write our data to the sqlite db.  This service is 
0107 #   called from the endJob() method of the PopConAnalyzer class (which we have 
0108 #   as SiStripPopConModuleHV) - that's why you won't find a call to it in the
0109 #   DCS code.
0110 #
0111 # Parameters: (need to document..)
0112 #   messageLevel
0113 #   authenticationPath
0114 #   timetype
0115 #   connect
0116 #   toPut
0117 #     record
0118 #     tag
0119 #   logconnect
0120 # -----------------------------------------------------------------------------
0121 
0122 process.load("CondCore.CondDB.CondDB_cfi")
0123 process.siStripPopConDetVOff = cms.EDAnalyzer( "SiStripO2ODetVOff",
0124                                      process.CondDB,
0125                                      # Get the last IOV from conditionDatabase.
0126 #                                     conditionDatabase = cms.string("oracle://cms_orcon_prod/CMS_CONDITIONS"),
0127                                      # Leave empty for manual restart (will then get the last IOV from sqlite condDbFile). 
0128                                      conditionDatabase = cms.string(""),
0129                                      condDbFile = cms.string("sqlite:%s" % "_DBFILE_"),
0130                                      targetTag = cms.string("_TAG_"),
0131                                      # max length (in hours) before a new IOV is started for the same payload (use -1 to disable this)
0132                                      maxTimeBeforeNewIOV = cms.untracked.int32(168)
0133                                      )
0134 
0135 # -----------------------------------------------------------------------------
0136 # Specify the processes to be run.  Here, we only run one.
0137 # -----------------------------------------------------------------------------
0138 process.p = cms.Path(process.siStripPopConDetVOff)