Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:07:58

0001 import FWCore.ParameterSet.Config as cms
0002 from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
0003 from DQM.L1TMonitor.L1TStage2uGT_cff import l1tStage2uGMTOutVsuGTIn
0004 
0005 # directory path shortening
0006 ugtDqmDir = 'L1T/L1TStage2uGT'
0007 ugtBoardCompDqmDir = ugtDqmDir+'/uGTBoardComparisons'
0008 
0009 # input histograms
0010 errHistNumStr = 'errorSummaryNum'
0011 errHistDenStr = 'errorSummaryDen'
0012 
0013 # CaloL2 vs. uGT
0014 l1tStage2uGTvsCaloLayer2RatioClient = DQMEDHarvester("L1TStage2RatioClient",
0015     monitorDir = cms.untracked.string(ugtDqmDir + '/calol2ouput_vs_uGTinput'),
0016     inputNum = cms.untracked.string(ugtDqmDir + '/calol2ouput_vs_uGTinput/'+errHistNumStr),
0017     inputDen = cms.untracked.string(ugtDqmDir + '/calol2ouput_vs_uGTinput/'+errHistDenStr),
0018     ratioName = cms.untracked.string('mismatchRatio'),
0019     ratioTitle = cms.untracked.string('Summary of mismatch rates between CaloLayer2 outputs and uGT inputs'),
0020     yAxisTitle = cms.untracked.string('# mismatch / # total'),
0021     binomialErr = cms.untracked.bool(True)
0022 )
0023 
0024 # Muons vs. uGT
0025 l1tStage2uGMTOutVsuGTInRatioClient = DQMEDHarvester("L1TStage2RatioClient",
0026     monitorDir = cms.untracked.string(ugtDqmDir+'/uGMToutput_vs_uGTinput'),
0027     inputNum = cms.untracked.string(ugtDqmDir+'/uGMToutput_vs_uGTinput/'+errHistNumStr),
0028     inputDen = cms.untracked.string(ugtDqmDir+'/uGMToutput_vs_uGTinput/'+errHistDenStr),
0029     ignoreBin = cms.untracked.vint32(l1tStage2uGMTOutVsuGTIn.ignoreBin),
0030     ratioName = cms.untracked.string('mismatchRatio'),
0031     ratioTitle = cms.untracked.string('Summary of mismatch rates between uGMT output muons and uGT input muons'),
0032     yAxisTitle = cms.untracked.string('# mismatch / # total'),
0033     binomialErr = cms.untracked.bool(True)
0034 )
0035 
0036 ## uGT Board Comparisons
0037 
0038 l1tStage2uGTMuon1vsMuon2RatioClient = DQMEDHarvester("L1TStage2RatioClient",
0039     monitorDir = cms.untracked.string(ugtBoardCompDqmDir+'/Board1vsBoard2/Muons'),
0040     inputNum = cms.untracked.string(ugtBoardCompDqmDir+'/Board1vsBoard2/Muons/'+errHistNumStr),
0041     inputDen = cms.untracked.string(ugtBoardCompDqmDir+'/Board1vsBoard2/Muons/'+errHistDenStr),
0042     ratioName = cms.untracked.string('mismatchRatio'),
0043     ratioTitle = cms.untracked.string('Summary of Mismatch Rates between Muons from uGT Board 1 and uGT Board 2'),
0044     yAxisTitle = cms.untracked.string('# mismatch / # total'),
0045     binomialErr = cms.untracked.bool(True)
0046 )
0047 
0048 l1tStage2uGTMuon1vsMuon3RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0049     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard3/Muons',
0050     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard3/Muons/'+errHistNumStr,
0051     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard3/Muons/'+errHistDenStr,
0052     ratioTitle = 'Summary of Mismatch Rates between Muons from uGT Board 1 and uGT Board 3'
0053 )
0054 l1tStage2uGTMuon1vsMuon4RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0055     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard4/Muons',
0056     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard4/Muons/'+errHistNumStr,
0057     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard4/Muons/'+errHistDenStr,
0058     ratioTitle = 'Summary of Mismatch Rates between Muons from uGT Board 1 and uGT Board 4'
0059 )
0060 l1tStage2uGTMuon1vsMuon5RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0061     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard5/Muons',
0062     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard5/Muons/'+errHistNumStr,
0063     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard5/Muons/'+errHistDenStr,
0064     ratioTitle = 'Summary of Mismatch Rates between Muons from uGT Board 1 and uGT Board 5'
0065 )
0066 l1tStage2uGTMuon1vsMuon6RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0067     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard6/Muons',
0068     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard6/Muons/'+errHistNumStr,
0069     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard6/Muons/'+errHistDenStr,
0070     ratioTitle = 'Summary of Mismatch Rates between Muons from uGT Board 1 and uGT Board 6'
0071 )
0072 l1tStage2uGTBoardCompMuonsRatioClientSeq = cms.Sequence(
0073     l1tStage2uGTMuon1vsMuon2RatioClient +
0074     l1tStage2uGTMuon1vsMuon3RatioClient +
0075     l1tStage2uGTMuon1vsMuon4RatioClient +
0076     l1tStage2uGTMuon1vsMuon5RatioClient +
0077     l1tStage2uGTMuon1vsMuon6RatioClient
0078 )
0079 
0080 l1tStage2uGTCalo1vsCalo2RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0081     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard2/CaloLayer2',
0082     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard2/CaloLayer2/'+errHistNumStr,
0083     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard2/CaloLayer2/'+errHistDenStr,
0084     ratioTitle = 'Summary of Mismatch Rates between CaloLayer2 Inputs from uGT Board 1 and uGT Board 2'
0085 )
0086 l1tStage2uGTCalo1vsCalo3RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0087     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard3/CaloLayer2',
0088     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard3/CaloLayer2/'+errHistNumStr,
0089     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard3/CaloLayer2/'+errHistDenStr,
0090     ratioTitle = 'Summary of Mismatch Rates between CaloLayer2 Inputs from uGT Board 1 and uGT Board 3'
0091 )
0092 l1tStage2uGTCalo1vsCalo4RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0093     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard4/CaloLayer2',
0094     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard4/CaloLayer2/'+errHistNumStr,
0095     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard4/CaloLayer2/'+errHistDenStr,
0096     ratioTitle = 'Summary of Mismatch Rates between CaloLayer2 Inputs from uGT Board 1 and uGT Board 4'
0097 )
0098 l1tStage2uGTCalo1vsCalo5RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0099     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard5/CaloLayer2',
0100     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard5/CaloLayer2/'+errHistNumStr,
0101     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard5/CaloLayer2/'+errHistDenStr,
0102     ratioTitle = 'Summary of Mismatch Rates between CaloLayer2 Inputs from uGT Board 1 and uGT Board 5'
0103 )
0104 l1tStage2uGTCalo1vsCalo6RatioClient = l1tStage2uGTMuon1vsMuon2RatioClient.clone(
0105     monitorDir = ugtBoardCompDqmDir+'/Board1vsBoard6/CaloLayer2',
0106     inputNum = ugtBoardCompDqmDir+'/Board1vsBoard6/CaloLayer2/'+errHistNumStr,
0107     inputDen = ugtBoardCompDqmDir+'/Board1vsBoard6/CaloLayer2/'+errHistDenStr,
0108     ratioTitle = 'Summary of Mismatch Rates between CaloLayer2 Inputs from uGT Board 1 and uGT Board 6'
0109 )
0110 l1tStage2uGTBoardCompCaloLayer2RatioClientSeq = cms.Sequence(
0111     l1tStage2uGTCalo1vsCalo2RatioClient +
0112     l1tStage2uGTCalo1vsCalo3RatioClient +
0113     l1tStage2uGTCalo1vsCalo4RatioClient +
0114     l1tStage2uGTCalo1vsCalo5RatioClient +
0115     l1tStage2uGTCalo1vsCalo6RatioClient
0116 )
0117 
0118 l1tStage2uGTBoardCompRatioClientSeq = cms.Sequence(
0119     l1tStage2uGTBoardCompMuonsRatioClientSeq +
0120     l1tStage2uGTBoardCompCaloLayer2RatioClientSeq
0121 )
0122 
0123 # uGT timing
0124 l1tStage2uGTRatioTimingPlots = DQMEDHarvester("DQMGenericClient",
0125     subDirs = cms.untracked.vstring(ugtDqmDir+'/'),
0126     efficiency = cms.vstring(
0127        "Ratio_First_Bunch_In_Train_Minus_2 'First Bunch In Train Minus 2 Ratio; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/first_bunch_in_train_minus2 timing_aux/den_first_bunch_in_train_minus2",
0128        "Ratio_First_Bunch_In_Train_Minus_1 'First Bunch In Train Minus 1 Ratio; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/first_bunch_in_train_minus1 timing_aux/den_first_bunch_in_train_minus1",
0129        "Ratio_First_Bunch_In_Train 'First Bunch In Train Ratio; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/first_bunch_in_train timing_aux/den_first_bunch_in_train",
0130        "Ratio_Last_Bunch_In_Train 'Last Bunch In Train Ratio; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/last_bunch_in_train timing_aux/den_last_bunch_in_train",
0131        "Ratio_Isolated_Bunch_In_Train 'Isolated Bunch In Train Ratio; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/isolated_bunch timing_aux/den_isolated_bunch_in_train",
0132        "Ratio_Prescaled_First_Bunch_In_Train 'First Bunch In Train Ratio for Prescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/prescaled_algo_first_collision_in_train_ timing_aux/den_prescaled_algo_first_collision_in_train_",
0133        "Ratio_Prescaled_Isolated_Bunch 'Isolated Bunch Ratio for Prescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/prescaled_algo_isolated_collision_in_train_ timing_aux/den_prescaled_algo_isolated_collision_in_train_",
0134        "Ratio_Prescaled_Last_Bunch_In_Train 'Last Bunch In Train Ratio for Prescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/prescaled_algo_last_collision_in_train_ timing_aux/den_prescaled_algo_last_collision_in_train_",
0135        "Ratio_Unprescaled_First_Bunch_In_Train 'First Bunch In Train Ratio for Unprescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/unprescaled_algo_first_collision_in_train_ timing_aux/den_unprescaled_algo_first_collision_in_train_",
0136        "Ratio_Unprescaled_Isolated_Bunch 'Isolated Bunch Ratio for Unprescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/unprescaled_algo_isolated_collision_in_train_ timing_aux/den_unprescaled_algo_isolated_collision_in_train_",
0137        "Ratio_Unprescaled_Last_Bunch_In_Train 'Last Bunch In Train Ratio for Unprescaled Triggers; Bunch crossing number relative to L1A; Algorithm trigger bit' timing_aux/unprescaled_algo_last_collision_in_train_ timing_aux/den_unprescaled_algo_last_collision_in_train_",
0138     ),
0139     resolution = cms.vstring(),
0140     verbose = cms.untracked.uint32(0),
0141     runOnEndLumi = cms.untracked.bool(True),
0142     makeGlobalEffienciesPlot = cms.untracked.bool(False)
0143 )
0144 
0145 # sequences
0146 l1tStage2uGTClient = cms.Sequence(
0147     l1tStage2uGTvsCaloLayer2RatioClient +
0148     l1tStage2uGMTOutVsuGTInRatioClient +
0149     l1tStage2uGTBoardCompRatioClientSeq + 
0150     l1tStage2uGTRatioTimingPlots
0151 )